开发者社区> 问答> 正文

Tomcat 线程池配置的一个自相矛盾的地方:配置报错 

Tomcat 可以通过 Executor 来配置线程池,官方文档 。 关于线程池有三个重要参数: maxThreads: 最大线程数 minSpareThreads: 最小的保持活动的线程数 maxIdleTime:线程的最大空闲时间,超过这个时间将被干掉 假设上述三个配置项我们指定了值分别为最大100个线程、最小10个线程、空闲时间30秒 可矛盾在于,当你线程数达到最大值100时,基本上就不会将下来了。因为降下来要满足空闲时间超过30秒,可Tomcat每次接收请求时,都是从池里随机拿出一个线程来处理该请求的,所有很难有线程的空闲时间超过30秒的,当然了,前提是访问量不能太小。

展开
收起
kun坤 2020-06-02 15:55:49 442 0
1 条回答
写回答
取消 提交回答
  • 感觉不出来矛盾在哪里,你的意思线程最小没用?######

    引用来自“罪恶的花生”的帖子

    感觉不出来矛盾在哪里,你的意思线程最小没用?

    是的,这个值只在最开始启动的时候有用。我现在看oschina系统中的线程列表,那些 HTTP-9081-exec-xxxx 的线程数永远不会降下来。######

    引用来自“红薯”的帖子

    引用来自“罪恶的花生”的帖子

    感觉不出来矛盾在哪里,你的意思线程最小没用? 是的,这个值只在最开始启动的时候有用。我现在看oschina系统中的线程列表,那些 HTTP-9081-exec-xxxx 的线程数永远不会降下来。 的确是这样,数据库连接池也是这样。我一般都把最小值和最大值设成一样,这样在启动时就能把所有连接都建立起来,而不会在用户请求时再建立连接,这样可以保证瓶颈不在连接中。######用mac 中文五笔输入法不太好用。所以直接用 英文好的。 数据库连接池 min && max 是它三到五倍 左右。我们项目我是这样设的。5的话,我会30-45左右。######经过几天的测试发现,线程数还是会降下来的。######

    引用来自“红薯”的帖子

    经过几天的测试发现,线程数还是会降下来的。 哈哈,在访问是不会高峰降下来的,但是在夜晚或着访问量很低的情况下肯定会有所下降,但是会降多少呢?######Tomcat 是从空闲线程之中随机获取的吗?难道不是按照 Hash 的顺序获取的?
    2020-06-02 15:56:09
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Apache Tomcat 的云原生演进 立即下载
多IO线程优化版 立即下载
低代码开发师(初级)实战教程 立即下载