我正在使用jconsole(以及TDA.jar插件)来获取远程tomcat 6服务器的线程转储。 我看到很多TP-Processorxx(90个线程)处于等待状态。在线程转储下面找到
"TP-Processor86" nid=197 state=WAITING
- waiting on <0x20afbfdd> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
- locked <0x20afbfdd> (a org.apache.tomcat.util.threads.ThreadPool$ControlRunnable)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:662)
at java.lang.Thread.run(Thread.java:619)
我想知道 - 这些TP-Processor线程是什么以及它们实际上做了什么? 由于这些等待线程,对性能有影响吗? 这些等待线程是否是一些错误的应用程序代码的结果?
答案 0 :(得分:0)
如果您真的对理解/调试线程转储感兴趣,可能需要阅读以下文章:
https://dzone.com/articles/how-analyze-java-thread-dumps
要回答您的问题,处于等待状态的线程(使用您提供的堆栈跟踪)通常是无害的。他们只是在等待任务进入队列。