Tomcat 的线程不等同于 JVM 的线程吗?

5

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

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

ManagementFactory.getThreadMXBean().getThreadCount():
38


感谢您的快速回答。您的答案非常清晰明了 :) - Keith
2个回答

6

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

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


2
根据javadocs,ManagementFactory.getThreadMXBean().getThreadCount()
返回当前活动线程的数量,包括守护线程和非守护线程。
因此,JVM可能有38个不同的线程(大多数在后台运行)。Tomcat为每个请求创建一个新线程(以便可以进行并发通信)。这两个数字不同是有道理的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接