前面的我那幾個原始碼截圖,大家可以自己點進去看看,共同點都是封裝了
threadpoolexcutor這建構函式
無非就是傳遞的引數不一樣~~
比如 singlethreadexecutor
public static executorservice newsinglethreadexecutor()
就是這個建構函式:
public threadpoolexecutor(int corepoolsize,
int maximumpoolsize,
long keepalivetime,
timeunit unit,
blockingqueueworkqueue)
下面我就介紹些這個建構函式:
int corepoolsize, 核心執行緒數 實際進行運用的執行緒數
int maximumpoolsize, 最大執行緒數 執行緒池最多建立執行緒數
long keepalivetime,
timeunit unit,
blockingqueueworkqueue
提交乙個任務到執行緒池中,執行緒池的處理流程如下:
1、判斷執行緒池裡的核心執行緒是否都在執行任務,如果不是(核心執行緒空閒或者還有核心執行緒沒有被建立)則建立乙個新的工作執行緒來執行任務。如果核心執行緒都在執行任務,則進入下個流程。
2、執行緒池判斷工作佇列是否已滿,如果工作佇列沒有滿,則將新提交的任務儲存在這個工作佇列裡。如果工作佇列滿了,則進入下個流程。
3、判斷執行緒池裡的執行緒是否都處於工作狀態,如果沒有,則建立乙個新的工作執行緒來執行任務。如果已經滿了,則交給飽和策略來處理這個任務。
執行緒池原理剖析
利用執行緒池能夠帶來三個好處 第一 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷毀造成的消耗。第二 提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。第三 提高執行緒的可管理性。執行緒是稀缺資源,如果無限制的建立,不僅會消耗系統資源,還會降低系統的穩定性,使用執行緒...
執行緒池剖析
public final class threadpool 建立執行緒池,worker num為執行緒池中工作執行緒的個數 private threadpool int worker num 單態模式,獲得乙個預設執行緒個數的執行緒池 public static threadpool getthre...
執行緒池1 執行緒池原理
執行緒池可以看做容納執行緒的容器 乙個應用程式最多只能有乙個執行緒池 threadpool靜態類通過queueuserworkitem 方法將工作函式排入執行緒池 每排入乙個工作函式,就相當於請求建立乙個執行緒 執行緒池的作用 執行緒池是為突然大量爆發的執行緒設計的,通過有限的幾個固定執行緒為大量的...