線程池默認(rèn)多少個(gè)線程 線程池,怎么停止線程池中的線程?
線程池,怎么停止線程池中的線程?1. 自然終止。當(dāng)線程執(zhí)行完它啟動(dòng)的方法后,它將自然終止。用于單個(gè)或多個(gè)一次性任務(wù)。如果是multiple,則在這種情況下建議使用線程池。將任務(wù)作為線程池任務(wù)寫入。2有
線程池,怎么停止線程池中的線程?
1. 自然終止。當(dāng)線程執(zhí)行完它啟動(dòng)的方法后,它將自然終止。用于單個(gè)或多個(gè)一次性任務(wù)。如果是multiple,則在這種情況下建議使用線程池。將任務(wù)作為線程池任務(wù)寫入。2有一個(gè)管理線程可以調(diào)用工作讀取中斷()方法。前提是使用一些同步機(jī)制來防止工作線程被丟棄一半的工作。此方法適用于在循環(huán)中等待某些任務(wù)的線程,例如tcplistener的循環(huán)接受線程、響應(yīng)消息的其他線程或接收/處理心跳消息的線程。
線程池初始化的時(shí)候,最小線程數(shù)為什么不能是0?
我學(xué)到的原理是:活動(dòng)線程的數(shù)量是CPU(核心)數(shù)量時(shí)最好的?;顒?dòng)線程太少導(dǎo)致CPU不能充分利用,活動(dòng)線程太多導(dǎo)致線程上下文切換開銷過大。首先,線程應(yīng)該是活動(dòng)的。io中的線程、休眠線程等不會(huì)占用CPU。在實(shí)際環(huán)境中,活動(dòng)線程的數(shù)量總是不斷變化的。許多活動(dòng)線程可能處于非活動(dòng)狀態(tài),因?yàn)樗鼈冃枰幚鞩O或等待資源。如果線程數(shù)等于CPU(核心)數(shù),則表示活動(dòng)線程數(shù)小于CPU(核心)數(shù)。因此,一些文檔建議使用CPU*22等規(guī)則來確定線程數(shù),但實(shí)際需要的線程數(shù)與線程的實(shí)際工作內(nèi)容有關(guān)。如果線程始終處于活動(dòng)狀態(tài),那么線程數(shù)達(dá)到或略高于CPU數(shù)(core)的CPU可以得到更充分的利用,如果線程經(jīng)常需要等待而不處于活動(dòng)狀態(tài),那么線程數(shù)應(yīng)該更多,以確保有足夠的活動(dòng)線程來充分利用CPU。但這只是一個(gè)簡單的考慮,有時(shí)實(shí)際情況比較復(fù)雜,我們必須考慮線程會(huì)以什么樣的行為工作,有必要通過有針對(duì)性的實(shí)驗(yàn)得出一個(gè)合理的值。