線程池中線程和隊列

線程池中的隊列分兩種,有界隊列和無界隊列,

當使用有界隊列的時候,新加入一個任務會先判斷核心線程是否有空閒的,如果有,就直接使用線程執行,如果沒有,會看看有界隊列是否已滿,如果未滿,則將任務加入有界隊列中,等核心線程有空閒的時候再去從隊列中獲取執行,如果有界隊列已滿,這個時候就會看看正在運行的線程數是否大於最大線程數,如果不大於,則創建新的線程執行這個任務,如果大於,則執行拒絕策略。

當使用無界隊列的時候,新加入一個任務,如果運行的線程數小於核心線程數,則創建新的線程執行此任務,如果已經等於 核心線程數,則將任務加入隊列當中,等有空閒線程再去執行此任務。

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