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