【问题标题】:Tomcat threads != JVM threads?Tomcat线程!= JVM线程?
【发布时间】:2011-07-11 14:44:57
【问题描述】:

Tomcat 管理器报告的线程计数与 ThreadMXBean 不同。 ThreadMXBean 报告的线程数也与 YourKit 分析器中报告的线程数相同。 Tomcat线程和JVM线程有区别吗?

来自 Tomcat 管理器的行:
最大线程数:200 当前线程数:7 当前线程繁忙:3

ManagementFactory.getThreadMXBean().getThreadCount():
38

【问题讨论】:

  • 感谢您的快速解答。你的答案完全有道理:)

标签: java tomcat jvm threadpool


【解决方案1】:

根据 javadocs,ManagementFactory.getThreadMXBean().getThreadCount()

返回当前活动线程的数量,包括守护进程和 非守护线程。

因此,JVM 很可能有 38 个不同的线程在运行(大部分在后台)。 Tomcat 为每个请求创建一个新线程(以便它可以进行并发通信)。这两个数字可能不同是有道理的。

【讨论】:

    【解决方案2】:

    Tomcat 线程是请求处理线程,不计算应用程序可能已经启动的其他线程。

    要更好地了解其他线程是什么,请查看Thread.getAllStackTraces()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-24
      • 2013-09-05
      • 2011-03-11
      • 2019-06-09
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多