Java線程池類ThreadPoolExecutor淺析
摘要: 線程池的特點是將任務的提交和執行分開。這樣做的好處是,能使處理器盡量多地同時執行任務。
1.當工人數量沒有達到最小雇傭數量時,每當任務來臨,線程池都要創建一個工人,把工人加入工人集合。
2.如果任務來臨時,當前工人數量poolSize已經大于最小雇傭數量,線程池嘗試把任務加入任務列表,如果成功,任務提交的步驟就結束了。
2.5.工人會不斷地嘗試從隊列里獲取任務,如果獲取到任務(請看5),工人就把任務拿去執行。這是任務的執行步驟。
3.如果加入隊列失敗,再雇傭一個工人或者
4.拒絕該任務。
5.工人等待任務的策略分兩種(本文不考慮生命周期和狀態):死等!在給定時間內等。
6.沒有任務則把該工人的線程結束。
7.沒有拿到任務的工人,被清除出工人集合。
閱讀全文