五種執行緒池的介紹

2021-09-19 04:21:00 字數 1764 閱讀 2086

1、newcachedthreadpool

作用:建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們,並在需要時使用提供的 threadfactory 建立新執行緒。

特徵

建立方式: executors.newcachedthreadpool();

2、newfixedthreadpool

作用:建立乙個可重用固定執行緒數的執行緒池,以共享的無界佇列方式來執行這些執行緒。在任意點,在大多數 nthreads 執行緒會處於處理任務的活動狀態。如果在所有執行緒處於活動狀態時提交附加任務,則在有可用執行緒之前,附加任務將在佇列中等待。如果在關閉前的執行期間由於失敗而導致任何執行緒終止,那麼乙個新執行緒將代替它執行後續的任務(如果需要)。在某個執行緒被顯式地關閉之前,池中的執行緒將一直存在。

特徵

建立方式

executors.newfixedthreadpool(int nthreads);//nthreads為執行緒的數量

executors.newfixedthreadpool(int nthreads,threadfactory threadfactory);//nthreads為執行緒的數量,threadfactory建立執行緒的工廠方式

3、newsinglethreadexecutor

作用:建立乙個使用單個 worker 執行緒的 executor,以無界佇列方式來執行該執行緒。(注意,如果因為在關閉前的執行期間出現失敗而終止了此單個執行緒,那麼如果需要,乙個新執行緒將代替它執行後續的任務)。可保證順序地執行各個任務,並且在任意給定的時間不會有多個執行緒是活動的。與其他等效的 newfixedthreadpool(1) 不同,可保證無需重新配置此方法所返回的執行程式即可使用其他的執行緒。

特徵

建立方式

executors.newsinglethreadexecutor() ;

executors.newsinglethreadexecutor(threadfactory threadfactory);// threadfactory建立執行緒的工廠方式

4、newschedulethreadpool

作用: 建立乙個執行緒池,它可安排在給定延遲後執行命令或者定期地執行。

特徵

建立方式

executors.newscheduledthreadpool(int corepoolsize);// corepoolsize執行緒的個數

newscheduledthreadpool(int corepoolsize, threadfactory threadfactory);// corepoolsize執行緒的個數,threadfactory建立執行緒的工廠

5、newsinglethreadscheduledexecutor

作用: 建立乙個單執行緒執行程式,它可安排在給定延遲後執行命令或者定期地執行。

特徵

建立方式

executors.newsinglethreadscheduledexecutor() ;

executors.newsinglethreadscheduledexecutor(threadfactory threadfactory) ;//threadfactory建立執行緒的工廠

五種執行緒池

1 newcachedthreadpool可快取執行緒池 作用 建立乙個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時將重用它們,並在需要時使用提供的 threadfactory 建立新執行緒。特徵 1 執行緒池中數量沒有固定,可達到最大值 interger.max value 2 ...

執行緒池 關於執行緒池的五種狀態

在threadpoolexecutor類中定義了執行緒的五種狀態表示,通過atomicinteger 的高三位來表示執行緒的狀態 private static final int count bits integer.size 3 private static final int running 1...

4種執行緒池的特點介紹

fixthreadpoolcachedthreadpoolscheduledthreadpoolsinglethreadpool1.1 通過exector的newfixedthreadpool靜態方法來建立 1.2 執行緒數量固定的執行緒池 1.3 只有核心執行緒切並且不會被 1.4 當所有執行緒都...