4

从主线程:

executorService.submit(new Runnable() { ... });

现在,当 Runnable 完成执行时,是否有 Java 的标准方式来通知调用者线程它已完成执行,而无需创建新的接口/侦听器类?

如果信号可以从调用者线程发出,则加分。

4

3 回答 3

4

submit返回一个Future提交线程可以调用get阻塞直到任务完成。

Future<?> future = executor.submit(new Runnable() { ... });
future.get();
于 2012-05-22T23:00:09.200 回答
3

您可以阻止返回的 Future 对象的 get(),或对其进行轮询 isDone() 方法。或者,您可以使用具有ListenableFuture的 google guava 库。

于 2012-05-22T23:01:21.683 回答
0

我不确定您的实现以及将同时运行多少线程,所以这可能行不通。您可以查看的一件事是通过调用知道如何更新所需的 UI 组件的方法来让 runnable 本身发出信号完成。

于 2012-05-28T21:27:26.880 回答