五種常用線程池的特徵和作用

newCachedThreadPool

作用:創建一個可根據需要創建新線程的線程池,但是在以前構造的線程可用時將重用它們,並在需要時使用提供的 ThreadFactory 創建新線程。
特徵:
(1)線程池中數量沒有固定,可達到最大值(Interger. MAX_VALUE)
(2)線程池中的線程可進行緩存重複利用和回收(回收默認時間爲1分鐘)
(3)當線程池中,沒有可用線程,會重新創建一個線程

newFixedThreadPool

作用:創建一個可重用固定線程數的線程池,以共享的無界隊列方式來運行這些線程。在任意點,在大多數 nThreads 線程會處於處理任務的活動狀態。如果在所有線程處於活動狀態時提交附加任務,則在有可用線程之前,附加任務將在隊列中等待。如果在關閉前的執行期間由於失敗而導致任何線程終止,那麼一個新線程將代替它執行後續的任務(如果需要)。在某個線程被顯式地關閉之前,池中的線程將一直存在。
特徵:
(1)線程池中的線程處於一定的量,可以很好的控制線程的併發量
(2)線程可以重複被使用,在顯示關閉之前,都將一直存在
(3)超出一定量的線程被提交時候需在隊列中等待

newSingleThreadExecutor

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

newScheduledThread

作用: 創建一個線程池,它可安排在給定延遲後運行命令或者定期地執行。
特徵:
(1)線程池中具有指定數量的線程,即便是空線程也將保留
(2)可定時或者延遲執行線程活動

newSingleScheduledThread

作用: 創建一個單線程執行程序,它可安排在給定延遲後運行命令或者定期地執行。
特徵:
(1)線程池中最多執行1個線程,之後提交的線程活動將會排在隊列中以此執行
(2)可定時或者延遲執行線程活動

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章