天天看點

寫給大忙人看的如何優雅設定線程池的大小

線程池需要設定合适的大小,假如設定的太大,線程上線文切換過于頻繁,造成大量資源開銷,反而會使性能降低。假如設定的太小,存在很多可用的處理器資源卻未在工作,會造成資源的浪費和對吞吐量造成損失。

為了充分利用處理器資源,建立的線程數至少要等于處理器核心數。如果所有的任務都是計算密集型的,那麼線程數等于可用的處理器核心數就可以了。不過,如果所有的任務都是IO密集型,那麼處理器大部分時間是空閑的,所有要适當的增加線程數。線程等待時間所占比例越高,需要越多線程。線程運算時間所占比例越高,需要越少線程。 于是可以使用下面的公式進行估算:

繼續閱讀