當提交任務執行excute時
1.若正在執行的執行緒數量小於corepoolsize,則執行緒池馬上建立執行緒執行任務
2.如果正在執行的執行緒數量大於等於corepoolsize,則多餘的任務加入阻塞佇列等待
3.如果佇列滿了且正在執行的執行緒數量小於maximumpoolsize,那麼還要建立非核心執行緒執行沒有加入佇列的任務
4.如果佇列滿了且正在執行的執行緒數量大於或等於maximumpoolsize,那麼就要採用拒絕策略執行多餘的任務
5.當乙個執行緒沒有任務時並且超過一定的時間,那麼這個執行緒會被停掉,所以所有的執行緒任務執行完成後,執行緒池會縮小到corepoolsize的大小
執行緒池底層原理《二》
當執行緒數小於核心執行緒數時,建立執行緒 當執行緒數大於等於核心執行緒數,且任務佇列未滿時,將任務放入任務佇列 當執行緒數大於等於核心執行緒數,且任務佇列已滿時,1 若執行緒數小於最大執行緒數,建立執行緒 2 若執行緒數等於最大執行緒數,丟擲異常,拒絕任務 abortpolicy 丟棄任務,拋執行時...
執行緒池底層佇列詳解
如果執行的執行緒數 corepoolsize,則 executor始終首選新增新的執行緒,而不進行排隊。即任務根本不會存入queue中,而是直接執行 如果執行的執行緒數 corepoolsize,則 executor 始終首選將請求加入佇列,而不新增新的執行緒。如果無法將請求加入佇列,則建立新的執行...
執行緒池底層核心介面簡析
threadpoolexcecutor構造方法引數 1.繼承關係 executor executorservice abstractexecutorservice threadpoolexecutor public threadpoolexecutor int corepoolsize,int ma...