写在文章开头
经常会聊到关于线程池调优的问题,那么线程池大小设置多少合理呢?每个人都有每个人的看法,有的人说通过压测得到一个TPS并基于这个结果设置线程数,有的说需要结合一定的一套规范去推算大概的范围,最后通过公式获得较为准确的结果。而笔者今天也从一个比较理论的角度来聊聊这个问题。
有读过《JAVA并发编程实践》
的读者可能都知道对于线程池的基本公式:
计算密集型=CPU核心数+1
IO密集型=CPU核心数*2+1
然而事实真的是这样吗?那么为什么tomcat
服务器的核心线程数要设置为200
呢?对此本文会以一套比较规范的场景实践来印证这个观点:
Hi,我是 sharkChili ,是个不断在硬核技术上作死的 java coder ,是 CSDN的博客专家 ,也是开源项目 Java Guide 的维护者之一,熟悉 Java 也会一点 Go ,偶尔也会在 C源码 边缘徘徊。写过很多有意思的技术博客,也还在研究并输出技术的路上,希望我