執行緒池的常見型別與特徵都有哪些

我們在上文中給大家簡單介紹了執行緒池的概念與工作原理等內容,而本文我們就繼續來學習一下,執行緒池的常見型別與特徵都有哪些。

執行緒池的常見型別與特徵都有哪些

1。newCachedThreadPool:建立一個可根據需要建立新執行緒的執行緒池,但是在以前構造的執行緒可用時講重用它們,並在需要時使用提供的ThreadFactory建立新執行緒

特徵:

(1)執行緒池中的數量沒有固定,可以達到大值(Integer。MAX_VALUE=2147483647)

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

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

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

特徵:

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

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

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

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

特徵:

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

4。newSingleThreadScheduledExecutor:建立一個單執行緒執行程式,它可安排在給定延遲後執行命令或者定期執行

特徵:

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

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

5。newScheduledThreadPool:建立一個執行緒池,它可安排在給定延遲後執行命令或者定期的執行

特徵:

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

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

TAG: 執行緒池中執行佇列建立