繁体   English   中英

如何通知调用者线程ExecutorService已完成任务

[英]How to signal the caller thread that ExecutorService has finished a task

从主线程:

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

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

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

submit回报Future在其上提交线程可以调用get阻塞,直到任务完成。

Future<?> future = executor.submit(new Runnable() { ... });
future.get();

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM