2013-07-16 18 views
0

如果我使用Executors.newSingleThreadExecutor()來得到ExecutorService,我可以設置執行每個Runnables的超時時間嗎?如果不是,是否有默認值?或者,如果其中一個runnable需要很長時間才能執行,將會阻塞Thread?如果使用Executors對象創建ExecutorService,是否可以設置超時值?

我讀過Android文檔,但它並不完全清楚,我(從Executors.newSingleThreadExecutor() Android的參考):

創建一個使用單個worker線程的無界隊列方式來運行的執行人。 (但是請注意,如果這個單線程在關閉之前由於執行期間的失敗而終止,那麼如果需要執行後續任務,則將取代它。)任務保證按順序執行,並且不會有一個任務處於活動狀態在任何給定的時間。與其他等效的newFixedThreadPool(1)不同,保證返回的執行程序不會被重新配置爲使用其他線程。

回答

0

什麼樣的Runnable是嗎? AFIK,如果它不是Future,那麼你不能在其上設置超時。您也可能會將可在ThreadPoolExecutor上設置的超時時間(池用來消除空閒線程的時間,以便降低到核心池大小)與單個任務的執行時間相混淆。

+0

感謝您指出使用期貨。 – JAC

相關問題