从主线程:
executorService.submit(new Runnable() { ... });
现在当Runnable完成执行时,是否有Java的标准方式来通知调用者线程它已经完成执行,而没有创建新的接口/监听器类?
如果信号可以从调用者线程发出,则加分。
答案 0 :(得分:4)
submit
返回Future
,提交线程可以在{{}}上调用get
来阻止任务完成。
Future<?> future = executor.submit(new Runnable() { ... });
future.get();
答案 1 :(得分:3)
您可以阻止返回的Future对象的get(),或者在其上轮询isDone()方法。或者,您可以使用具有ListenableFuture的google guava库。
答案 2 :(得分:0)
我不确定您的实现以及将同时运行多少线程,因此这可能无效。你可以看一件事是通过调用一个知道如何更新所需UI组件的方法来让runnable自己发出信号。