我对执行者服务还很陌生。喜欢自己做所有事情,但我认为是时候相信这些服务了。
我想通过 Executer
传递一个 Runnable
。执行者将其包装在 FutureTask
中并将其交还给我。现在我调用 poll done()
方法。但我希望在 done()
方法返回 true 时得到通知。
有一个 get()
方法会阻塞直到 Runnable
完成,但是之后我需要为每个作业添加一个额外的线程,只是为了查看它何时完成.
我可以给我的执行者一些额外的 Callable
以获得任务完成的通知吗?
到这里怎么走?我可以在 run
方法的末尾添加一些代码,但是 done()
可能仍然是 false...
最佳答案
执行器完成服务
http://download.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/ExecutorCompletionService.html
关于java Callable FutureTask Excecuter : How to listen to finished task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6346927/