2 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
根據(jù) java 文檔,Spring 在這里要做的事情較少
當(dāng)在方法execute(Runnable)中提交新任務(wù)并且正在運(yùn)行的線程少于corePoolSize時(shí),即使其他工作線程處于空閑狀態(tài),也會(huì)創(chuàng)建一個(gè)新線程來(lái)處理該請(qǐng)求。如果運(yùn)行的線程數(shù)大于 corePoolSize 但小于 MaximumPoolSize,則僅當(dāng)隊(duì)列已滿時(shí)才會(huì)創(chuàng)建新線程

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
核心線程池大小指定要保持準(zhǔn)備狀態(tài)以處理任何潛在工作的線程數(shù)量,以避免創(chuàng)建新線程的開(kāi)銷。指定 300 是要求線程池始終維護(hù) 300 個(gè)線程,您不應(yīng)該期望它在滿足該數(shù)量之前重用。如果這個(gè)值太高,請(qǐng)考慮減少 corePoolSize,同時(shí)保持 maxPoolSize 不變,當(dāng)池過(guò)載時(shí),它會(huì)擴(kuò)大。查看 ThreadPoolTaskExecutor 的setAllowCoreThreadTimeOut在不使用時(shí)將線程池縮小到 corePoolSize 以下。
添加回答
舉報(bào)