執行緒池核心組成部分及執行機制

2021-09-22 19:06:13 字數 1857 閱讀 7501

corepoolsize:核心執行緒池大小 csize,不初始化預設是0個

maxinumpoolssize:執行緒池最大容量 msize

keepalivetime:當執行緒數量大於核心時,多餘的空閒執行緒在終止之前等待新任務的最大時間。

unit:時間單位

workqueue:工作佇列 nworks

threadfactory:執行緒工廠

handler:拒絕策略

執行機制

通過new 建立執行緒池時,除非呼叫prestartallcorethreads方法初始化核心執行緒,否則此時執行緒池中有0個執行緒,即使工作佇列中存在多個任務,同樣不會執行。,

public class corethreaddemo );

}threadpoolexecutor threadpoolexecutor = new threadpoolexecutor(10,20,2000,timeunit.seconds,object);

//啟動所有核心執行緒

threadpoolexecutor.prestartallcorethreads();

}/**

* 任務數x

* x <= csize 只啟動x個執行緒

*/public static void maintwo(string args) throws exception

); }

}/**

* 任務數x;csize核心執行緒數;nworks工作佇列

* x <= csize && xobject = new linkedblockingqueue<>(20);

threadpoolexecutor threadpoolexecutor = new threadpoolexecutor(10,20,3,timeunit.seconds,object);

//啟動所有核心執行緒

threadpoolexecutor.prestartallcorethreads();

for (int i = 0; i < 10; i++) catch (interruptedexception e)

//列印當前執行緒的活躍數

system.out.println(thread.activecount());

});}

}/**

* 任務數x;csize核心執行緒數;nworks工作佇列

* x <= csize && x >=nworks + csize

* x-(nworks) <= msize 會啟動x-(nworks)個執行緒

* */

public static void main5(string args) throws exception

catch (interruptedexception e)

//列印當前執行緒的活躍數

system.out.println(thread.activecount());

});}

}/**

* 任務數x;csize核心執行緒數;nworks工作佇列

* x <= csize && x >=nworks + csize

* x-(nworks) > msize 會啟動msize個執行緒來執行任務,其餘的執行相應的拒絕策略;

* nworks為工作佇列,

* 開始會先丟擲異常

* 50個任務只會執行40個

* **/public static void main(string args) throws exception

catch (interruptedexception e)

//列印當前執行緒的活躍數

system.out.println(thread.activecount());

});}

}

Linux核心組成部分(二)

裝置驅動程式 塊裝置和字元裝置 裝置驅動程式用於與系統連線的輸入 輸出裝置通訊,如硬碟 軟碟機 各種介面 音效卡等。按照經典的unix箴言 萬物皆檔案 everything is a file 對外設的訪問可利用 dev目錄下的裝置檔案來完成,程式對裝置的處理完全類似於常規的檔案 網路 網絡卡也可以...

Linux核心的組成部分

linux核心主要有 5個子系統組成 程序排程 sched 記憶體管理 mm 虛擬檔案系統 vfs 網路介面 net 和程序間通訊 ipc 1 程序排程 程序在程序排程子系統中微觀序列,巨集觀並行。其餘 4 個子系統都依賴於程序排程系統,因為每個子系統也需要掛起或恢復程序,當它們需要做這些工作時,都...

HDFS組成部分及作用

一 組成部分 1.client客戶端 2.namenode主節點 3.secondarynamenode 理解為 namenode 的備份,屬於冷備份 二 各部分的作用 client client 發布命令,集群操作,監聽 獲取集群的執行狀態 分塊 邏輯分塊 之規定的最大沒有規定最小即使有兩個不滿6...