如何解释Java线程堆栈?

符合这个问题: 如何获得线程的堆栈跟踪

我想知道是否有人可以指出有关解释用jstack提取的Java线程堆栈的信息。

我的情况是我在GlassFish v2.1.1上运行的Java EE 5应用程序定期挂起(每天至少2-3次)。为了让它再次运行,我必须杀死Glassfish进程并再次启动域。 应用程序通常会变得越来越慢,直到它最终完全挂起。 一旦挂起,我就无法获得线程堆栈。 我已经能够获得一个线程堆栈,因为它越来越慢,但我看不到找到问题或挂起的线程。

这是最新的线程转储: http : //issues.i2m.dk/attachments/66/threadstack.201103211046.txt

线程转储片段:

 "p: thread-pool-1; w: 20" daemon prio=10 tid=0x00007efd18843800 nid=0x5f89 in Object.wait() [0x00007efd03381000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "TP-Processor83" daemon prio=10 tid=0x0000000043179000 nid=0x5f87 runnable [0x00007efd03583000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked  (a java.io.BufferedInputStream) at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:607) at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:545) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:672) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:662) "p: thread-pool-1; w: 19" daemon prio=10 tid=0x00007efd18710800 nid=0x5f86 in Object.wait() [0x00007efd03684000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "p: thread-pool-1; w: 18" daemon prio=10 tid=0x0000000042a5a000 nid=0x5f85 in Object.wait() [0x00007efd03785000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "p: thread-pool-1; w: 17" daemon prio=10 tid=0x0000000042a57000 nid=0x5f84 in Object.wait() [0x00007efd03886000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "p: thread-pool-1; w: 16" daemon prio=10 tid=0x000000004321b000 nid=0x5f83 in Object.wait() [0x00007efd03987000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "p: thread-pool-1; w: 15" daemon prio=10 tid=0x0000000043219800 nid=0x5f82 in Object.wait() [0x00007efd03a88000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "p: thread-pool-1; w: 14" daemon prio=10 tid=0x00000000429b6000 nid=0x5f81 in Object.wait() [0x00007efd03b89000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl.requestWork(WorkQueueImpl.java:171) - locked  (a com.sun.corba.ee.impl.orbutil.threadpool.WorkQueueImpl) at com.sun.corba.ee.impl.orbutil.threadpool.ThreadPoolImpl$WorkerThread.run(ThreadPoolImpl.java:528) "TP-Processor82" daemon prio=10 tid=0x0000000043896800 nid=0x5f80 runnable [0x00007efd03c8a000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked  (a java.io.BufferedInputStream) at org.apache.jk.common.ChannelSocket.read(ChannelSocket.java:607) at org.apache.jk.common.ChannelSocket.receive(ChannelSocket.java:545) at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:672) at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Thread.java:662) "Thread-44980" daemon prio=10 tid=0x00007efd202c3800 nid=0x5d74 runnable [0x00007efd067b5000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked  (a java.io.BufferedInputStream) at com.sun.jndi.ldap.Connection.run(Connection.java:808) at java.lang.Thread.run(Thread.java:662) "Thread-44979" daemon prio=10 tid=0x00007efd20d76000 nid=0x5d73 runnable [0x00007efd062b0000] java.lang.Thread.State: RUNNABLE at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(SocketInputStream.java:129) at java.io.BufferedInputStream.fill(BufferedInputStream.java:218) at java.io.BufferedInputStream.read1(BufferedInputStream.java:258) at java.io.BufferedInputStream.read(BufferedInputStream.java:317) - locked  (a java.io.BufferedInputStream) at com.sun.jndi.ldap.Connection.run(Connection.java:808) at java.lang.Thread.run(Thread.java:662) "TP-Monitor" daemon prio=10 tid=0x00007efd2139f800 nid=0x5b1 in Object.wait() [0x00007efd0d453000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:561) - locked  (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at java.lang.Thread.run(Thread.java:662) "TP-Monitor" daemon prio=10 tid=0x00007efd20143000 nid=0x5b0 in Object.wait() [0x00007efd0d554000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable.run(ThreadPool.java:561) - locked  (a org.apache.tomcat.util.threads.ThreadPool$MonitorRunnable) at java.lang.Thread.run(Thread.java:662) "httpWorkerThread-4848-48" daemon prio=10 tid=0x00007efd18a82800 nid=0x5aa in Object.wait() [0x00007efd0db5a000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.enterprise.web.connector.grizzly.LinkedListPipeline) at java.lang.Object.wait(Object.java:485) at com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:304) - locked  (a com.sun.enterprise.web.connector.grizzly.LinkedListPipeline) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:120) "GrizzlyPipelineStatWorkerThread-4848-2" daemon prio=10 tid=0x00007efd20033000 nid=0x579 waiting on condition [0x00007efd10c8b000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for  (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:113) "GrizzlyPipelineStatWorkerThread-4848-1" daemon prio=10 tid=0x00007efd2124f000 nid=0x578 waiting on condition [0x00007efd10d8c000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for  (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:113) "httpSSLWorkerThread-8181-48" daemon prio=10 tid=0x0000000042041800 nid=0x575 in Object.wait() [0x00007efd1108f000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline) at java.lang.Object.wait(Object.java:485) at com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:304) - locked  (a com.sun.enterprise.web.connector.grizzly.ssl.SSLPipeline) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:109) "SelectorThread-4848" prio=10 tid=0x00007efd207ba800 nid=0x546 runnable [0x00007efd13fbe000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked  (a sun.nio.ch.Util$1) - locked  (a java.util.Collections$UnmodifiableSet) - locked  (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1421) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1336) - locked  (a [Ljava.lang.Object;) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1299) at com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1275) "httpSSLWorkerThread-8080-49" daemon prio=10 tid=0x00007efd20bfc800 nid=0x541 in Object.wait() [0x00007efd144c3000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a com.sun.enterprise.web.portunif.PortUnificationPipeline) at java.lang.Object.wait(Object.java:485) at com.sun.enterprise.web.connector.grizzly.LinkedListPipeline.getTask(LinkedListPipeline.java:304) - locked  (a com.sun.enterprise.web.portunif.PortUnificationPipeline) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:109) "SelectorThread-8181" prio=10 tid=0x00007efd2161c000 nid=0x50e runnable [0x00007efd177f6000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked  (a sun.nio.ch.Util$1) - locked  (a java.util.Collections$UnmodifiableSet) - locked  (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1421) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1336) - locked  (a [Ljava.lang.Object;) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1299) at com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1275) "GrizzlyPipelineStatWorkerThread-8080-1" daemon prio=10 tid=0x00007efd20f4c800 nid=0x50a waiting on condition [0x00007efd17bfa000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for  (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:113) "GrizzlyPipelineStatWorkerThread-8080-0" daemon prio=10 tid=0x00007efd20966800 nid=0x509 waiting on condition [0x00007efd17cfb000] java.lang.Thread.State: TIMED_WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for  (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:198) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2025) at java.util.concurrent.DelayQueue.take(DelayQueue.java:164) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:609) at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:602) at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at com.sun.enterprise.web.connector.grizzly.WorkerThreadImpl.run(WorkerThreadImpl.java:113) "SelectorThread-8080" prio=10 tid=0x00007efd201a0800 nid=0x508 runnable [0x00007efd17dfc000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked  (a sun.nio.ch.Util$1) - locked  (a java.util.Collections$UnmodifiableSet) - locked  (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at com.sun.enterprise.web.connector.grizzly.SelectorThread.doSelect(SelectorThread.java:1421) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startListener(SelectorThread.java:1336) - locked  (a [Ljava.lang.Object;) at com.sun.enterprise.web.connector.grizzly.SelectorThread.startEndpoint(SelectorThread.java:1299) at com.sun.enterprise.web.connector.grizzly.SelectorThread.run(SelectorThread.java:1275) "ContainerBackgroundProcessor[StandardEngine[com.sun.appserv]]" daemon prio=10 tid=0x00007efd207af800 nid=0x503 waiting on condition [0x00007efd1c76c000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1813) at java.lang.Thread.run(Thread.java:662) "Timer-13" daemon prio=10 tid=0x00007efd202d2800 nid=0x4fe in Object.wait() [0x00007efd1c96e000] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a java.util.TaskQueue) at java.lang.Object.wait(Object.java:485) at java.util.TimerThread.mainLoop(Timer.java:483) - locked  (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Timer-9" daemon prio=10 tid=0x00007efd209ad000 nid=0x4f9 in Object.wait() [0x00007efd1d7d1000] java.lang.Thread.State: TIMED_WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on  (a java.util.TaskQueue) at java.util.TimerThread.mainLoop(Timer.java:509) - locked  (a java.util.TaskQueue) at java.util.TimerThread.run(Timer.java:462) "Thread-11" daemon prio=10 tid=0x00007efd183f6800 nid=0x4c0 waiting on condition [0x00007efd1efe7000] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for  (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158) at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1987) at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:399) at com.sun.enterprise.management.support.LoaderRegThread.processFOREVER(LoaderRegThread.java:263) at com.sun.enterprise.management.support.LoaderRegThread.run(LoaderRegThread.java:311) "SelectorThread" daemon prio=10 tid=0x00007efd183ff800 nid=0x4ba runnable [0x00007efd1f5ed000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked  (a sun.nio.ch.Util$1) - locked  (a java.util.Collections$UnmodifiableSet) - locked  (a sun.nio.ch.EPollSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at com.sun.corba.ee.impl.transport.SelectorImpl.run(SelectorImpl.java:283) 

我正在寻找有关解释转储的一般信息,以便我可以在将来诊断问题。 谢谢。

一些可能对你有帮助的事情

  • 以下是不同的线程状态,如BLOCKED,WAITING等。
  • Java将为您找到死锁,您将看到如’使用’jstack’检测Java线程死锁中所述的输出。
  • 你可能有一个活锁 。 在这里,您需要有关系统的信息并通过转储和源代码。

如何推进当前的问题?

  • 根据这个转储,我可以告诉你有几个对象被锁定并等待多个线程。 寻找字符串’ – 等待’和’ – 锁定’。 我不知道你的应用程序的逻辑更多。

从你的线程转储:

 java.lang.Thread.State: RUNNABLE at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method) at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:210) at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:65) 

看起来你在JDK中使用Selector旋转时有着名的BUG。