色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

大家如何估算線程池數量

夏志豪2年前20瀏覽0評論

大家如何估算線程池數量?

線程池的大小對系統的性能有一定的影響,過大或者過小的線程數量都無法發揮最優的系統性能,但是線程池大小的確定也不需要做的非常精確。因為只要避免極大和極小兩種情況,線程池的大小對性能的影響都不會影響太大,一般來說,確定線程池的大小需要考慮CPU數量,內存大小等因素,在《Java Concurrency in Practice》 書中給出了一個估算線程池大小的經驗公式:

公式:Nthread = Ncpu * Ucpu * (1+ W/C),各字段含義:

Nthreads:線程數量

Ncpu:CPU的數量,Runtime.getRuntime().availableProcessors()

Ucpu:CPU使用率,范圍在[0,1]

W/C:等待時間與計算時間的比率

其實就是要分清是計算密集型還是IO密集型。

如果是C無限大也就是計算密集型的那么線程太多意義不大,因為需要CPU計算,起多了也沒用。

如果是IO密集型那么可以起更多的線程,因為等待時間過多。

簡單總結就是:IO密集多線程,計算密集線程=CPU核數比較合適。

歡迎關注筆者,持續分享有價值的優質架構文章。

java多線程線程池,大家如何估算線程池數量