java線程池

1 newCachedThreadPool
創(chuàng)建一個可緩存線程池,如果線程池長度超過處理需要,可靈活回收空閑線程,若無可回收,則新建線程。

這種類型的線程池特點是:

工作線程的創(chuàng)建數(shù)量幾乎沒有限制(其實也有限制的,數(shù)目為Interger. MAX_VALUE), 這樣可靈活的往線程池中添加線程。

如果長時間沒有往線程池中提交任務,即如果工作線程空閑了指定的時間(默認為1分鐘),則該工作線程將自動終止。終止后,如果你又提交了新的任務,則線程池重新創(chuàng)建一個工作線程。

在使用CachedThreadPool時,一定要注意控制任務的數(shù)量,否則,由于大量線程同時運行,很有會造成系統(tǒng)癱瘓。

2 newFixedThreadPool
創(chuàng)建一個指定工作線程數(shù)量的線程池。每當提交一個任務就創(chuàng)建一個工作線程,如果工作線程數(shù)量達到線程池初始的最大數(shù),則將提交的任務存入到池隊列中。

FixedThreadPool是一個典型且優(yōu)秀的線程池,它具有線程池提高程序效率和節(jié)省創(chuàng)建線程時所耗的開銷的優(yōu)點。但是,在線程池空閑時,即線程池中沒有可運行任務時,它不會釋放工作線程,還會占用一定的系統(tǒng)資源。

3 newSingleThreadExecutor
創(chuàng)建一個單線程化的Executor,即只創(chuàng)建唯一的工作者線程來執(zhí)行任務,它只會用唯一的工作線程來執(zhí)行任務,保證所有任務按照指定順序(FIFO, LIFO, 優(yōu)先級)執(zhí)行。如果這個線程異常結(jié)束,會有另一個取代它,保證順序執(zhí)行。單工作線程最大的特點是可保證順序地執(zhí)行各個任務,并且在任意給定的時間不會有多個線程是活動的。

4 newScheduleThreadPool
創(chuàng)建一個定長的線程池,而且支持定時的以及周期性的任務執(zhí)行,支持定時及周期性任務執(zhí)行。

5 newSingleThreadScheduledExecutor
作用: 創(chuàng)建一個單線程執(zhí)行程序,它可安排在給定延遲后運行命令或者定期地執(zhí)行。

特征:
(1)線程池中最多執(zhí)行1個線程,之后提交的線程活動將會排在隊列中以此執(zhí)行
(2)可定時或者延遲執(zhí)行線程活動

創(chuàng)建方式:
(1)Executors.newSingleThreadScheduledExecutor() ;
(2)Executors.newSingleThreadScheduledExecutor(ThreadFactory threadFactory) ;

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 更多 Java 并發(fā)編程方面的文章,請參見文集《Java 并發(fā)編程》 線程組 Thread Group 線程的集合...
    專職跑龍?zhí)?/span>閱讀 1,419評論 0 3
  • 序言 近日后臺需要一些數(shù)據(jù),需要從網(wǎng)上爬取,但是爬取的過程中,由于訪問速度太頻繁,造成IP被封,最終通過線程池解決...
    非專業(yè)程序員閱讀 954評論 0 3
  • Java線程池 [toc] 什么是線程池 線程池就是有N個子線程共同在運行的線程組合。 舉個容易理解的例子:有個線...
    石家志遠閱讀 1,423評論 0 6
  • 一、線程池簡介 Java并發(fā)編程中,我們常常使用以下兩種方法來開啟一個新的線程來并發(fā)完成某些任務: 寫一個Thre...
    邱simple閱讀 1,471評論 0 2
  • 今個第一次過母親節(jié),娃不會說話,也不會祝我節(jié)日快樂,總覺得缺點什么。并不是因為沒收到寶寶的祝福而失落,好像是還沒資...
    da67ef58fbc5閱讀 382評論 0 1

友情鏈接更多精彩內(nèi)容