1、當向線程池提交一個任務之后,線程池的處理流程如下:
(1)判斷當前核心線程數量是否大於最大值,否則創建一個新線程來執行任務,是則將該線程加入阻塞隊列,進入下一步。
(2)判斷當前阻塞隊列是否已滿,否則將任務存儲到隊列,是則進入下一步。
(3)判斷當前線程池中的線程是否達到最大值,否則創建一個新線程執行任務,是則交給飽和策略處理該任務。
2、線程池提供的飽和策略目前有以下4種:
(1)AbortPolicy:直接拋出異常(默認策略)。
(2)CallerRunsPolicy:只用調用者所在線程來運行任務。
(3)DiscardOldestPolicy:丟棄隊列里最近的一個任務,並執行當前任務。
(4)DiscardPolicy:不處理,直接丟棄。
