17 併發程式設計 執行緒池

2022-09-14 01:51:12 字數 1225 閱讀 6048

合理利用執行緒池能夠帶來三個好處。

在 j**a 5 之後,併發程式設計引入了一堆新的啟動、排程和管理 執行緒的api。

executor 框架包括:執行緒池,executor,executors,executorservice,completionservice,future,callable 等。

executorservice 的生命週期包括三種狀態:執行、關閉、終止

executors 提供了一系列工廠方法用於創先執行緒池,返回的執行緒池都實現了 executorservice 介面

[x] public static executorservice newfixedthreadpool(int nthreads)

[x] public static executorservice newcachedthreadpool()

[x] public static executorservice newsinglethreadexecutor()

[x] public static scheduledexecutorservice newscheduledthreadpool(int corepoolsize)

例項**

executor 執行 runnable 任務

通過 executors 的以上四個靜態工廠方法獲得 executorservice 例項,而後呼叫該例項的 execute(runnable command)方法即可。

一旦 runnable 任務傳遞到 execute()方法,該方法便會自動在乙個執行緒上執行。

下面是 executor 執行 runnable 任務的示例**:

1

import

j**a.util.concurrent.executorservice;

2import

j**a.util.concurrent.executors; 34

public

class

testcachedthreadpool

13executorservice.shutdown();

14}

15}

1617

class testrunnable implements

runnable

21 }

java併發程式設計 執行緒池

降低資源消耗 提高響應速度 t1 執行緒建立的時間 t2 工作任務執行額時間 t3 執行緒銷毀時間 提高了執行緒的可管理性 corepoolsize 核心執行緒數 如果執行的執行緒數大於核心執行緒數,則會先進入到阻塞佇列裡 maxinumpoolsize 允許最大執行緒數 執行緒池所建立的執行緒數一...

併發程式設計之 執行緒池

執行緒池做的工作主要是控制執行的執行緒的數量,處理過程中將任務放入佇列,然後再執行緒建立後啟動這些任務,如果執行緒數量超過了最大數量,超出數量的執行緒排隊等候,等其它執行緒執行完畢,再從佇列中取出任務來執行。他的主要特點為 執行緒復用 控制最大併發數,管理執行緒。第一 降低資源消耗。通過重複利用已建...

併發程式設計之執行緒池

步驟1 自定義拒絕策略介面 1 執行緒池狀態 threadpoolexecutor使用int的高3位來表示執行緒池狀態,低29位表示執行緒數量 從數字上比較,terminated tidying stop shutdown running 這些資訊儲存在乙個原子變數ctl中目的是將執行緒池狀態與執行...