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) ;