首頁  >  文章  >  Java  >  Java執行緒池如何關閉

Java執行緒池如何關閉

王林
王林轉載
2023-05-09 11:58:152947瀏覽

1、shutdown()方法是安全的關閉執行緒池,呼叫shutdown方法後,不是立即關閉執行緒池,而是在執行緒池中執行很多任務,或等待佇列執行任務,等待所有任務完成後關閉執行緒池

2、isShutdown()方法可判斷執行緒池是否開始關閉,無法判斷是否完全關閉。

3、isterminated()方法可以判斷執行緒池是否完全關閉,因此呼叫shutdown後,執行任務時,呼叫isshutdown回傳true,呼叫isterminated回傳false。

awaittermination方法是判斷線程池是否完全關閉,與isterminated相似,但接受等待時間。呼叫該方法可能發生以下情況

(1)等待期間(包括進入等待狀態)線程池關閉,提交的任務(包括執行中和隊列中等待的)全部完成,相當於線程池結束,方法傳回true

(2)等待逾時後,最初的執行緒池沒有發生結束法回到false

(3)等待期間執行緒中斷,方法會拋出網路例外。

shutdownNow:立即關閉執行緒池,首先向執行緒池中的執行緒發送中斷訊號,嘗試中斷執行緒,然後將等待佇列的任務傳回呼叫人員,呼叫人員補救這些任務。

因此,我們可以根據自己的業務需求,選擇合適的方法停止執行緒池。例如,通常可以用shutdown()的方法關閉,完成提交的任務,但如果情況緊急,可以用shutdownnow方法加快線程池的結束速度。

以上是Java執行緒池如何關閉的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除