一、對(duì)于一個(gè)8核的的高性能CPU來(lái)說(shuō)在多線程場(chǎng)景下是不是線程池設(shè)置的越大越好?如何確定線程池的大小,設(shè)置不當(dāng)會(huì)帶來(lái)什么問(wèn)題
1??并非越大越好,線程池大小的設(shè)置要根據(jù) CPU 處理的任務(wù)特征來(lái)區(qū)別對(duì)待。
2??如果線程執(zhí)行的是 CPU 密集型任務(wù)服務(wù)器的物理內(nèi)核數(shù)就應(yīng)該被視為是有限的資源,這樣創(chuàng)建的線程數(shù)就不應(yīng)該超過(guò)系統(tǒng)的內(nèi)核數(shù)。
3??如果線程執(zhí)行的是 IO 密集型任務(wù)就要根據(jù) IO 的占比和速度進(jìn)行性能測(cè)試來(lái)確認(rèn)線程池的大小。
4??線程池大小設(shè)置的過(guò)小或者過(guò)大都會(huì)導(dǎo)致系統(tǒng)產(chǎn)生問(wèn)題無(wú)法利用系統(tǒng)資源,如果線程池的線程數(shù)量過(guò)少這使得用戶需要花費(fèi)很長(zhǎng)時(shí)間來(lái)等待請(qǐng)求的響應(yīng)。但是,如果允許創(chuàng)建過(guò)多的線程,會(huì)產(chǎn)生線程不斷切換,系統(tǒng)的資源又會(huì)被耗盡,這會(huì)對(duì)系統(tǒng)造成更大的破壞,甚至宕機(jī)。