線程池實現原理


1、當向線程池提交一個任務之后,線程池的處理流程如下:

(1)判斷當前核心線程數量是否大於最大值,否則創建一個新線程來執行任務,是則將該線程加入阻塞隊列,進入下一步。

(2)判斷當前阻塞隊列是否已滿,否則將任務存儲到隊列,是則進入下一步。

(3)判斷當前線程池中的線程是否達到最大值,否則創建一個新線程執行任務,是則交給飽和策略處理該任務。

 

2、線程池提供的飽和策略目前有以下4種:

(1)AbortPolicy:直接拋出異常(默認策略)。

(2)CallerRunsPolicy:只用調用者所在線程來運行任務。

(3)DiscardOldestPolicy:丟棄隊列里最近的一個任務,並執行當前任務。

(4)DiscardPolicy:不處理,直接丟棄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM