執行緒池介紹

2021-07-22 12:51:00 字數 1176 閱讀 7576

1.定義

執行緒池是一種多執行緒處理形式,處理過程中將任務新增 到佇列,然後在建立執行緒後自動啟動這些任務。

2.作用    

執行緒池的作用是限制系統中執行執行緒的數量。

根據系統的環境情況,可以手動或是自動設定執行緒數量,達到執行的最佳效果。既不會浪費系統資源,還避免了系統擁擠。用執行緒池控制線程的數量,其他執行緒排隊等候。乙個任務執行完畢,再從佇列中取最前面的任務進行執行。若佇列中沒有等待執行緒,則執行緒池資源進行等待

3.使用原因

1>減少建立和銷毀執行緒的次數,每個執行緒都可以被重複利用,可執行多個任務。

2>可以根據系統的承受力,調整執行緒池中工作執行緒的數目,防止因為消耗過多的記憶體,而掛掉伺服器。

4.結構

頂級介面executor ---->這個介面代表執行者,是典型的命令模式的應用。介面中唯一方法:execute(runnable)

--------executorservice    ---->真正執行緒池介面

我們經常使用的執行緒池是threadpoolexecutor ,

forkjoinpool是jdk7新增的執行緒池,解決計算機多核問題,解決並行問題,其他兩個解決併發問題

scheduledthreadpoolexecutor比executorservice新增了「延時」和「週期執行」的功能。

5.使用

executors是執行緒池的工廠類,提供了一些列靜態方法,用於建立各種不同功能的執行緒池或執行緒物件。

2>newfixedthreadpool(int nthreads)  固定執行緒數的執行緒池

3>newsinglethreadpool()  單執行緒的執行緒池

4>newscheduledthreadpool()   指定數目的執行緒池,可以指定延時後執行任務

5>newsinglethreadscheduledpool()  單執行緒池,可延時執行

6.狀態

running:能接收新任務。

shutdown:不接受新任務,但是可以處理已新增的任務。

stop:不接收新任務,中斷正在處理的任務。

tidying:當所有任務已終止,執行緒池會變為此狀態。然後執行terminated()

terminated:執行緒徹底狀態。

執行緒池介紹

建立執行緒池的方法 1 使用jdk1.5自帶的executors框架建立執行緒池。executors框架提供了4種執行緒池的建立方法 public static executorservice newfixedthreadpool int nthreads 特點 1 執行緒池的核心執行緒數和最大執行...

執行緒池的介紹

構造相關的介紹 阻塞佇列,如果blockingqueue是空的,從blockingqueue取東西的操作將會被阻斷進入等待狀態,直到blockingqueue進了東西才會被喚醒,同樣,如果blockingqueue是滿的,任何試圖往裡存東西的操作也會被阻斷進入等待狀態,直到blockingqueue...

執行緒池簡單介紹

執行緒池 1 fixedthreadpool 可重用固定執行緒數的執行緒池 2 singlethreadexecutor 單個worker執行緒的executor 3 cachedthreadpool 根據需要建立執行緒的執行緒池 corepoolsize為0,maximumpoolsize是無界的...