5種執行緒池的建立方法和作用

2022-06-19 10:51:12 字數 1848 閱讀 8810

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

特徵: 

(1)執行緒池中數量沒有固定,可達到最大值(interger. max_value) 

(2)執行緒池中的執行緒可進行快取重複利用和**(**預設時間為1分鐘) 

(3)當執行緒池中,沒有可用執行緒,會重新建立乙個執行緒

建立方式: executors.newcachedthreadpool();

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

特徵: 

(1)執行緒池中的執行緒處於一定的量,可以很好的控制線程的併發量 

(2)執行緒可以重複被使用,在顯示關閉之前,都將一直存在 

(3)超出一定量的執行緒被提交時候需在佇列中等待

建立方式: 

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

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

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

特徵: 

(1)執行緒池中最多執行1個執行緒,之後提交的執行緒活動將會排在佇列中以此執行

建立方式: 

(1)executors.newsinglethreadexecutor() ; 

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

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

特徵: 

(1)執行緒池中具有指定數量的執行緒,即便是空執行緒也將保留 

(2)可定時或者延遲執行執行緒活動

建立方式: 

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

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

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

特徵: 

(1)執行緒池中最多執行1個執行緒,之後提交的執行緒活動將會排在佇列中以此執行 

(2)可定時或者延遲執行執行緒活動

建立方式: 

(1)executors.newsinglethreadscheduledexecutor() ; 

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

執行緒池的5種建立方式

1 single thread excecutor 只有乙個執行緒的執行緒池,因此所有提交的任務是順序執行,executors.newsinglethreadexecutor 2 cached thread pool 執行緒池裡面有很多執行緒需要同時執行,老的可用執行緒將被新的任務觸發重新執行,如果...

執行緒及執行緒池的幾種建立方法

jdk8提供了五種建立執行緒池的方法 1.建立乙個定長線程池,可控制線程最大併發數,超出的執行緒會在佇列中等待。public static executorservice newfixedthreadpool int nthreads 特點 2.jdk8新增 會根據所需的併發數來動態建立和關閉執行緒...

Java 執行緒池的作用

在程式啟動的時候就建立若干執行緒來響應處理,它們被稱為執行緒池,裡面的執行緒叫工作執行緒 第一 降低資源消耗。通過重複利用已建立的執行緒降低執行緒建立和銷毀造成的消耗。第二 提高響應速度。當任務到達時,任務可以不需要等到執行緒建立就能立即執行。第三 提高執行緒的可管理性。常用執行緒池 executo...