threadpoolexcecutor構造方法引數
1.繼承關係
executor
executorservice
abstractexecutorservice
threadpoolexecutor
public threadpoolexecutor(int corepoolsize,int maxnumpoolsize, long reepalivetime,timeunit unit, blockingqueueworkqueue, threadfactory threadfactory, rejectexecutionhandler handler){
corepoolsize:執行緒池核心執行緒數
maxnumpoolsize:執行緒池最大數
reepalivetime:空閒執行緒存活時間
unit:時間單位
workqueue:執行緒池所使用的緩衝佇列
threadfactory:執行緒池建立使用的工廠
handler:執行緒池對拒絕任務的處理策略
特性一:當池中正在執行的執行緒數(包括空閒執行緒),小於corepoolsize時,從執行緒池中取執行緒執行任務。
特性二:當池中正在執行的執行緒數大於等於corepoolsize時,新插入的任務進入workqueue排隊。
特性三:當佇列裡的任務達到上限,並且池中正在執行的執行緒數小於maxnumpoolsize,對於新加入的任務,新建執行緒。
特性四:當佇列裡的任務數達到上限,並且池中正在執行的執行緒數等於maxnumpoolsize,對於新加入的任務,執行拒絕策略(預設策略跑出rejectdexcutionexception)
執行緒池底層原理《二》
當執行緒數小於核心執行緒數時,建立執行緒 當執行緒數大於等於核心執行緒數,且任務佇列未滿時,將任務放入任務佇列 當執行緒數大於等於核心執行緒數,且任務佇列已滿時,1 若執行緒數小於最大執行緒數,建立執行緒 2 若執行緒數等於最大執行緒數,丟擲異常,拒絕任務 abortpolicy 丟棄任務,拋執行時...
執行緒池底層佇列詳解
如果執行的執行緒數 corepoolsize,則 executor始終首選新增新的執行緒,而不進行排隊。即任務根本不會存入queue中,而是直接執行 如果執行的執行緒數 corepoolsize,則 executor 始終首選將請求加入佇列,而不新增新的執行緒。如果無法將請求加入佇列,則建立新的執行...
執行緒池底層工作原理和流程
當提交任務執行excute時 1.若正在執行的執行緒數量小於corepoolsize,則執行緒池馬上建立執行緒執行任務 2.如果正在執行的執行緒數量大於等於corepoolsize,則多餘的任務加入阻塞佇列等待 3.如果佇列滿了且正在執行的執行緒數量小於maximumpoolsize,那麼還要建立非...