2014-08-31 54 views
1

我在线程A上创建ExecutorService,然后线程B在ExecutorService上调用shutdown()awaitTermination()从创建ExecutorService的不同线程调用ExecutorService.shutdown()和awaitTermination()是否安全?

假设所有任务已经在线程B创建之前提交,并且不会提交任何新任务,是否有任何危险?

我猜这很好,但它永远不会伤害问。

+0

为了简单起见,您可以发布一些代码来了解您的意思。 – adhg 2014-08-31 02:22:21

回答

0

正如你猜它是精美绝伦,从主题B.在ExecutorService的调用ExecutorService的shutdown()方法和awaitTermination(..)

逸岸中的ExecutorService的通常用法,一个线程需要添加的照顾所有线程任务到executorservice,然后同一个线程启动一个正常关机(),然后awaitTermination(..)。所以在你的情况下,你只是创建ThreadB来完成你的关机任务。

理想情况下,最好不要将你的ThreadB提交给它会尝试shutdown()的同一个ExecutorService,我相信你会考虑它。