2014-08-31 52 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,我相信你會考慮它。