Apache Tomcat请求线程

Koe*_*box 5 java multithreading tomcat

我们有一个泄漏了一点内存的应用程序,有点轻描淡写.

我正在jvisualvm尝试找出造成问题的原因.

我看到线程计数在以名称开头的线程上增长了很多:http-8080-例如:http:8080-42

我的第一个猜测是,每个线程都是来自客户端的请求命中,因为每个客户端请求都是在自己的线程中处理的.

我的问题是那些线程已经运行了很长一段时间(到目前为止10分钟).

我的问题是:

我的假设是否正确?如果是这样,为什么线程运行这么长时间?当然它还不能忙着满足客户的要求吗?

Mic*_*ael 6

Tomcat总是有许多等待的HTTP线程,例如,如果我们查看默认的连接器设置:

<Connector port="80" maxHttpHeaderSize="8192"
              maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
              enableLookups="false" redirectPort="8443" acceptCount="100"
              connectionTimeout="20000" disableUploadTimeout="true" />
Run Code Online (Sandbox Code Playgroud)

我们可以看到应该总是至少有25个线程,但是等待连接(直到maxThreads限制).这由min和maxSpareThreads属性控制.

JVisual VM声明线程正在等待或锁定资源等等?