1 newCachedThreadPool
創(chuàng)建一個可緩存線程池品抽,如果線程池長度超過處理需要储笑,可靈活回收空閑線程,若無可回收圆恤,則新建線程突倍。
這種類型的線程池特點是:
工作線程的創(chuàng)建數(shù)量幾乎沒有限制(其實也有限制的,數(shù)目為Interger. MAX_VALUE), 這樣可靈活的往線程池中添加線程。
如果長時間沒有往線程池中提交任務(wù)盆昙,即如果工作線程空閑了指定的時間(默認為1分鐘)羽历,則該工作線程將自動終止。終止后淡喜,如果你又提交了新的任務(wù)秕磷,則線程池重新創(chuàng)建一個工作線程。
在使用CachedThreadPool時炼团,一定要注意控制任務(wù)的數(shù)量澎嚣,否則疏尿,由于大量線程同時運行,很有會造成系統(tǒng)癱瘓币叹。
2 newFixedThreadPool
創(chuàng)建一個指定工作線程數(shù)量的線程池润歉。每當提交一個任務(wù)就創(chuàng)建一個工作線程,如果工作線程數(shù)量達到線程池初始的最大數(shù)颈抚,則將提交的任務(wù)存入到池隊列中踩衩。
FixedThreadPool是一個典型且優(yōu)秀的線程池,它具有線程池提高程序效率和節(jié)省創(chuàng)建線程時所耗的開銷的優(yōu)點贩汉。但是驱富,在線程池空閑時,即線程池中沒有可運行任務(wù)時匹舞,它不會釋放工作線程褐鸥,還會占用一定的系統(tǒng)資源。
3 newSingleThreadExecutor
創(chuàng)建一個單線程化的Executor赐稽,即只創(chuàng)建唯一的工作者線程來執(zhí)行任務(wù)叫榕,它只會用唯一的工作線程來執(zhí)行任務(wù),保證所有任務(wù)按照指定順序(FIFO, LIFO, 優(yōu)先級)執(zhí)行姊舵。如果這個線程異常結(jié)束晰绎,會有另一個取代它,保證順序執(zhí)行括丁。單工作線程最大的特點是可保證順序地執(zhí)行各個任務(wù)荞下,并且在任意給定的時間不會有多個線程是活動的。
4 newScheduleThreadPool
創(chuàng)建一個定長的線程池史飞,而且支持定時的以及周期性的任務(wù)執(zhí)行尖昏,支持定時及周期性任務(wù)執(zhí)行。
5 newSingleThreadScheduledExecutor
作用: 創(chuàng)建一個單線程執(zhí)行程序构资,它可安排在給定延遲后運行命令或者定期地執(zhí)行抽诉。
特征:
(1)線程池中最多執(zhí)行1個線程,之后提交的線程活動將會排在隊列中以此執(zhí)行
(2)可定時或者延遲執(zhí)行線程活動
創(chuàng)建方式:
(1)Executors.newSingleThreadScheduledExecutor() 吐绵;
(2)Executors.newSingleThreadScheduledExecutor(ThreadFactory threadFactory) 掸鹅;