Java執行緒池的使用總結

2021-09-13 00:15:36 字數 1535 閱讀 8715

執行緒池工廠類executors介紹

jdk提供的常用的執行緒池介面有兩個:executor和executorservice.

executor是基礎介面,只提供了乙個提交任務的方法:

void execute(runnable command);
executorservice是executor的子介面,提供了提交future任務,和關閉執行緒池的方法

void shutdown();

listshutdownnow();

boolean awaittermination(long timeout, timeunit unit)throws interruptedexception;

/*

1,停止接受新的任務;

2,等待佇列中的任務和正在執行中的任務處理完畢

3,關閉執行緒池,執行緒池不再可用

*/shutdown();

/*

1,停止接受新的任務

2,中斷正在執行的任務。

3,不執行佇列中等待的任務,並將等待的任務返回

4,執行緒池不再可用

*/listshutdownnow();

/*

1,停止接受新的任務

2,等待正在執行中的任務和排隊的任務執行完畢或者超時

3,如果執行完畢返回true,如果超時返回false

4,該方法結束後,執行緒池可以繼續接受新的任務

*/boolean awaittermination(long timeout, timeunit unit)

throws interruptedexception;

executor的例項物件是通過工廠類executors來建立的。

下面介紹下建立執行緒池的幾種不同方法及區別。

/*

建立乙個最多只有乙個活躍執行緒的執行緒池,該執行緒池可以保證任務的執行按照提交任務的順序依次執行

*/executorservice singexecutor = executors.newsinglethreadexecutor();

/* 不限制活動執行緒的數量,每個任務處理完成後,後續的任務可以復用之前建立的執行緒

*/executorservice cacheexecutor = executors.newcachedthreadpool();

/* 保證執行緒池中一直有5個且最多5個活動的執行緒

*/executorservice fixedexecutor = executors.newfixedthreadpool(5);

上述工廠類executors建立執行緒池的三個方法,都可以通過增加乙個引數threadfactory來自定義執行緒池的名字。

executorservice singexecutor = executors.newsinglethreadexecutor(new threadfactory() 

});

java執行緒池使用

newcachedthreadpool newfixedthreadpool newscheduledthreadpool newsinglethreadexecutor 單例物件中的執行緒池使用 建立乙個可快取執行緒池,如果執行緒池長度超過處理需要,可靈活 空閒執行緒,若無可 則新建執行緒 exe...

java執行緒池技術總結

1.executor 執行緒池頂層介面,只有乙個execute方法,void execute runnable command 2.executorservice介面繼承於executor介面 3.executors 是操作executor的工具類 executors 能建立各種型別的執行緒池 1....

執行緒池使用總結

執行緒池使用總結 excutors工廠類 為了更好的控制更多的多執行緒,jdk提供返回乙個固定數量的執行緒池。方法 自定義執行緒池 threadpoolexecutors 執行緒池相關引數的配置 threadpoolexecutor int corepoolsize,核心執行緒數,執行緒初始化就會被...