java線程池--核心線程怎麼保證的一直存活的!!!

  1. 線程池創建後如果執行executor.prestartCoreThread();會提前設置核心線程數

  2. 添加工作任務

  3. 線程池沒停止並且小於核心線程數

  4. 將線程添加到線程工作組

  5. 查看 w = new Worker(firstTask); 創建的線程內部的run方法 這裏創建出工作線程

  6. 用工作任務生成個線程,當執行工作任務的時候其實執行的是runWorker方法

  7. 當需要執行工作中的runnable對象的時候, 如果當前的runnable對象不爲空,或者工作隊列中有就執行

  8. 執行線程池的execute方法會傳入runnable對象,並且加入工作隊列

  9. getTask方法獲取Runnable對象是關鍵,如果有超時用隊列的方法,如果沒超時用隊列的take方法(使用的是cas自旋實現的無鎖機制)。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章