執行緒池原理剖析

2021-09-23 13:54:00 字數 963 閱讀 6841

前面的我那幾個原始碼截圖,大家可以自己點進去看看,共同點都是封裝了

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 方法將工作函式排入執行緒池 每排入乙個工作函式,就相當於請求建立乙個執行緒 執行緒池的作用 執行緒池是為突然大量爆發的執行緒設計的,通過有限的幾個固定執行緒為大量的...