簡介
線程池是java中用來管理線程的工具,可以復(fù)用線程,以減小創(chuàng)建銷毀線程的開銷,同時提供了對線程靈活的控制
參數(shù)含義

1562683184(1).jpg
corePoolSize 為常駐線程數(shù)量,常駐線程在任務(wù)執(zhí)行完成后會阻塞
maximunPoolSize 為線程池最大線程數(shù),非核心線程在執(zhí)行完成任務(wù)后停留一段時間后會被銷毀
keepAliveTime 為非核心線程駐留時間
unit 時間單位
workQueue 任務(wù)隊(duì)列
threadFactory 用于創(chuàng)建線程
RejectedExecutionHandler 拒絕策略
當(dāng)提交一個任務(wù)時,首先會檢查核心線程數(shù)量,若未滿,則添加核心線程來執(zhí)行,若已滿,則添加到阻塞隊(duì)列,若添加失敗,則嘗試添加線程,若任然失敗,則執(zhí)行拒絕策略
線程數(shù)核心線程數(shù)配置
若為IO密集型,則需要較多的線程,建議 2 * N_CORE
若為CPU密集型,建議 N_CORE + 1,對一個線程來利用IO等待CPU空出來的時鐘周期