今天小編給大家分享一下java線程池如何關閉的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
1、shutdown()方法是安全的關閉線程池,調用shutdown方法后,不是立即關閉線程池,而是在線程池中執行很多任務,或者等待隊列中執行任務,等待所有任務完成后關閉線程池
2、isShutdown()方法可判斷線程池是否開始關閉,無法判斷是否完全關閉。
3、isterminated()方法可以判斷線程池是否完全關閉,因此調用shutdown后,執行任務時,調用isshutdown返回true,調用isterminated返回false。
awaittermination方法是判斷線程池是否完全關閉,與isterminated相似,但接受等待時間。調用該方法可能發生以下情況
(1)等待期間(包括進入等待狀態)線程池關閉,提交的任務(包括執行中和隊列中等待的)全部完成,相當于線程池結束,方法返回true
(2)等待超時后,最初的線程池沒有發生結束法回到false
(3)等待期間線程中斷,方法會拋出互聯網異常。
shutdownNow:立即關閉線程池,首先向線程池中的線程發送中斷信號,嘗試中斷線程,然后將等待隊列的任務返回調用人員,調用人員補救這些任務。
因此,我們可以根據自己的業務需求,選擇合適的方法停止線程池。例如,通??梢杂胹hutdown()的方法關閉,完成提交的任務,但如果情況緊急,可以用shutdownnow方法加快線程池的結束速度。
以上就是“java線程池如何關閉”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。