4 種線程池
newCachedThreadPool
創(chuàng)建一個可根據(jù)需要創(chuàng)建新線程的線程池律杠,但是在以前構(gòu)造的線程可用時將重用它們榜聂。對于執(zhí)行
很多短期異步任務(wù)的程序而言麻裁,這些線程池通扯瞎可提高程序性能。 調(diào)用 execute 將重用以前構(gòu)造
的線程(如果線程可用)鱼鸠。如果現(xiàn)有線程沒有可用的猛拴,則創(chuàng)建一個新線程并添加到池中。終止并
從緩存中移除那些已有 60 秒鐘未被使用的線程瞧柔。 因此漆弄,長時間保持空閑的線程池不會使用任何資
源。
newFixedThreadPool
創(chuàng)建一個可重用固定線程數(shù)的線程池造锅,以共享的無界隊列方式來運行這些線程撼唾。在任意點,在大
多數(shù) nThreads 線程會處于處理任務(wù)的活動狀態(tài)哥蔚。如果在所有線程處于活動狀態(tài)時提交附加任務(wù)倒谷,
則在有可用線程之前,附加任務(wù)將在隊列中等待糙箍。如果在關(guān)閉前的執(zhí)行期間由于失敗而導(dǎo)致任何
線程終止渤愁,那么一個新線程將代替它執(zhí)行后續(xù)的任務(wù)(如果需要)。在某個線程被顯式地關(guān)閉之
前深夯,池中的線程將一直存在抖格。
newScheduledThreadPool
創(chuàng)建一個線程池诺苹,它可安排在給定延遲后運行命令或者定期地執(zhí)行。
newSingleThreadExecutor
Executors.newSingleThreadExecutor()返回一個線程池(這個線程池只有一個線程) ,這個線程
池可以在線程死后(或發(fā)生異常時)重新啟動一個線程來替代原來的線程繼續(xù)執(zhí)行下去雹拄!