Java 在tomcat 7线程转储中可以看到多个定时线程
我们一直在tomcat 7中监视线程,最近我们开始看到线程数有时会变成正常值的两倍,即大约200个线程(而不是通常的大约80个线程) 在进行线程转储时,我看到在线程数量增加的过程中,由于存在大量(大约100个)线程而增加,如下所示(全部等待588cc7d5):Java 在tomcat 7线程转储中可以看到多个定时线程,java,multithreading,tomcat,Java,Multithreading,Tomcat,我们一直在tomcat 7中监视线程,最近我们开始看到线程数有时会变成正常值的两倍,即大约200个线程(而不是通常的大约80个线程) 在进行线程转储时,我看到在线程数量增加的过程中,由于存在大量(大约100个)线程而增加,如下所示(全部等待588cc7d5): “http-bio-8080-exec-201”-线程t@2856 java.lang.Thread.State:定时等待 在sun.misc.Unsafe.park(本机方法) -停车等待(java.util.concurrent.lo
“http-bio-8080-exec-201”-线程t@2856
java.lang.Thread.State:定时等待
在sun.misc.Unsafe.park(本机方法)
-停车等待(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
位于java.util.concurrent.locks.LockSupport.parknos(未知源)
位于java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(未知源)
位于java.util.concurrent.LinkedBlockingQueue.poll(未知源)
位于org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
位于org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
位于java.util.concurrent.ThreadPoolExecutor.getTask(未知源)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
锁定可拥有的同步器:
-没有
有人知道是什么导致了这种行为吗?可能您已经达到了8080连接器线程池大小的限制,所有传入的请求都堆积在队列中,等待释放的线程。 maxThreads的默认值为200,但此值可以在配置中更改。 有关详细信息,请参阅。 完整的线程转储对于详细信息更有用
"http-bio-8080-exec-201" - Thread t@2856
java.lang.Thread.State: TIMED_WAITING
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <588cc7d5> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(Unknown Source)
at java.util.concurrent.LinkedBlockingQueue.poll(Unknown Source)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:86)
at org.apache.tomcat.util.threads.TaskQueue.poll(TaskQueue.java:32)
at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Locked ownable synchronizers:
- None