-
如果是CPU密集型应用,则线程池大小设置为N+1 (N为CPU总核数)
-
如果是IO密集型应用,则线程池大小设置为2N+1 (N为CPU总核数)
-
线程等待时间(IO)所占比例越高,需要越多线程。
-
线程CPU时间所占比例越高,需要越少线程。
一个系统最快的部分是CPU,所以决定一个系统吞吐量上限的是CPU。增强CPU处理能力,可以提高系统吞吐量上限。
但根据短板效应,真实的系统吞吐量并不能单纯根据CPU来计算。
那要提高系统吞吐量,就需要从“系统短板”(比如网络延迟、IO)着手:
- 尽量提高短板操作的并行化比率,比如多线程下载技术
- 增强短板能力,比如用NIO替代IO