java五種線程池
newFixedThreadPool: 創(chuàng)建個(gè)固定大小的線程池,對(duì)發(fā)數(shù)進(jìn)行控制,避免過(guò)多的發(fā)導(dǎo)致資源消耗過(guò)大。適用于任務(wù)量固定的場(chǎng)景,如廢舊物資回收利用企業(yè)的數(shù)據(jù)統(tǒng)計(jì)等。
newSingleThreadExecutor: 只有個(gè)工作線程的線程池,所有任務(wù)按照隊(duì)列順序執(zhí)行。適用于保證串行執(zhí)行的任務(wù),如數(shù)字版權(quán)的驗(yàn)證等。
newCachedThreadPool: 創(chuàng)建個(gè)可緩存的線程池,線程池中的線程空閑時(shí)間超過(guò)秒,會(huì)被自動(dòng)終止,且會(huì)根據(jù)重新創(chuàng)建新的線程。適用于處理大量短生命周期的任務(wù),如平面設(shè)計(jì)軟件的快速渲染等。
scheduledThreadPool: 創(chuàng)建個(gè)定長(zhǎng)的線程池,支持定時(shí)及周期性任務(wù)執(zhí)行。適用于定期進(jìn)行任務(wù)調(diào)度的場(chǎng)景,如廢舊物資回收利用企業(yè)的定期庫(kù)存檢查等。
ForkJoinPool: 是Java 新引入的種基于工作竊取算法的線程池,主要用于密集型計(jì)算。適用于大規(guī)模的數(shù)據(jù)處理,如翻譯系統(tǒng)的批量翻譯任務(wù)等。