2

我看到线程转储Java应用程序中经常出现“孤立”线程。我的应用程序本身似乎因 cpu 活动非常低而被冻结,并且我的线程转储显示许多线程正在等待锁定对象,但没有线程锁定该对象。

有没有人似乎有类似的情况,并对如何进一步诊断有任何建议?

这是线程转储:

全线程转储 Java HotSpot(TM) 64 位服务器 VM(1.5.0_12-b04 混合模式):

“RMI TCP Connection(17)-10.162.107.103”守护进程prio=1 tid=0x0000002c094b6600 nid=0x3856可运行[0x000000004499a000..0x000000004499aeb0]
    在 java.net.SocketInputStream.socketRead0(本机方法)
    在 java.net.SocketInputStream.read(SocketInputStream.java:129)
    在 java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    在 java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - 锁定(一个 java.io.BufferedInputStream)
    在 java.io.FilterInputStream.read(FilterInputStream.java:66)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Connection(16)-10.162.107.103”守护进程prio=1 tid=0x0000002c08067990 nid=0x3855可运行[0x0000000044899000..0x0000000044899d30]
    在 java.net.SocketInputStream.socketRead0(本机方法)
    在 java.net.SocketInputStream.read(SocketInputStream.java:129)
    在 java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    在 java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - 锁定(一个 java.io.BufferedInputStream)
    在 java.io.FilterInputStream.read(FilterInputStream.java:66)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Connection(13)-10.162.107.103”守护进程prio=1 tid=0x0000002c080680d0 nid=0x3594可运行[0x0000000044596000..0x0000000044596b30]
    在 java.net.SocketInputStream.socketRead0(本机方法)
    在 java.net.SocketInputStream.read(SocketInputStream.java:129)
    在 java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    在 java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - 锁定(一个 java.io.BufferedInputStream)
    在 java.io.FilterInputStream.read(FilterInputStream.java:66)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“JMX 服务器连接超时 86”守护进程 prio=1 tid=0x0000002c08a9f000 nid=0x34c8 in Object.wait() [0x0000000044394000..0x0000000044394e30]
    在 java.lang.Object.wait(本机方法)
    - 等待 (a [I)
    在 com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout.run(ServerCommunicatorAdmin.java:150)
    - 锁定(a [I)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Connection(11)-10.162.107.103”守护进程prio=1 tid=0x0000002c096a6d80 nid=0x34c6 in Object.wait() [0x0000000044191000..0x0000000044192eb0]
    在 java.lang.Object.wait(本机方法)
    - 等待(com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    在 com.sun.jmx.remote.internal.ArrayNotificationBuffer.fetchNotifications(ArrayNotificationBuffer.java:344)
    - 锁定(com.sun.jmx.remote.internal.ArrayNotificationBuffer)
    在 com.sun.jmx.remote.internal.ArrayNotificationBuffer$ShareBuffer.fetchNotifications(ArrayNotificationBuffer.java:122)
    在 com.sun.jmx.remote.internal.ServerNotifForwarder.fetchNotifs(ServerNotifForwarder.java:169)
    在 javax.management.remote.rmi.RMIConnectionImpl.fetchNotifications(RMIConnectionImpl.java:1215)
    在 sun.reflect.GeneratedMethodAccessor221.invoke(未知来源)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:585)
    在 sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
    在 sun.rmi.transport.Transport$1.run(Transport.java:153)
    在 java.security.AccessController.doPrivileged(本机方法)
    在 sun.rmi.transport.Transport.serviceCall(Transport.java:149)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:466)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Connection(10)-10.162.107.103”守护进程prio=1 tid=0x0000002c084513b0 nid=0x3067可运行[0x0000000043c8d000..0x0000000043c8dd30]
    在 java.net.SocketInputStream.socketRead0(本机方法)
    在 java.net.SocketInputStream.read(SocketInputStream.java:129)
    在 java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    在 java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - 锁定(一个 java.io.BufferedInputStream)
    在 java.io.FilterInputStream.read(FilterInputStream.java:66)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Connection(8)-10.162.107.103”守护进程prio=1 tid=0x0000002c07f7f980 nid=0x2acd可运行[0x0000000044293000..0x0000000044293c30]
    在 java.net.SocketInputStream.socketRead0(本机方法)
    在 java.net.SocketInputStream.read(SocketInputStream.java:129)
    在 java.io.BufferedInputStream.fill(BufferedInputStream.java:218)
    在 java.io.BufferedInputStream.read(BufferedInputStream.java:235)
    - 锁定(一个 java.io.BufferedInputStream)
    在 java.io.FilterInputStream.read(FilterInputStream.java:66)
    在 sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:448)
    在 sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:707)
    在 java.lang.Thread.run(Thread.java:595)

“RMI LeaseChecker”守护进程prio=1 tid=0x0000002c080f6990 nid=0x264c 等待条件[0x0000000043d8e000..0x0000000043d8ecb0]
    在 java.lang.Thread.sleep(本机方法)
    在 sun.rmi.transport.DGCImpl$LeaseChecker.run(DGCImpl.java:310)
    在 java.lang.Thread.run(Thread.java:595)

“OracleTimeoutPollingThread”守护进程prio=1 tid=0x0000002c08b70320 nid=0x9ae 等待条件[0x0000000043b8c000..0x0000000043b8cbb0]
    在 java.lang.Thread.sleep(本机方法)
    在 oracle.jdbc.driver.OracleTimeoutPollingThread.run(OracleTimeoutPollingThread.java:158)

“ProcessActivities_29 线程”prio=1 tid=0x0000002c06961d50 nid=0x8e4 等待监视器条目 [0x0000000043a8b000..0x0000000043a8be30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_28 线程”prio=1 tid=0x0000002c06960930 nid=0x8e3 等待监视器条目 [0x000000004398a000..0x000000004398aeb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_27 线程”prio=1 tid=0x0000002c0695f4e0 nid=0x8e2 等待监视器条目 [0x0000000043889000..0x0000000043889d30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_26 线程”prio=1 tid=0x0000002c0695e4a0 nid=0x8e1 等待监视器条目 [0x0000000043788000..0x0000000043788db0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_25 线程”prio=1 tid=0x0000002c05e745c0 nid=0x8e0 等待监视器条目 [0x0000000043687000..0x0000000043687c30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_24 线程”prio=1 tid=0x0000002c05e73490 nid=0x8df 等待监视器条目 [0x0000000043586000..0x0000000043586cb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_23 线程”prio=1 tid=0x0000002c05e71db0 nid=0x8de 等待监视器条目 [0x0000000043485000..0x0000000043485b30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_22 线程”prio=1 tid=0x0000002c05e70990 nid=0x8dd 等待监视器条目 [0x0000000043384000..0x0000000043384bb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_21 线程”prio=1 tid=0x0000002c05e6f540 nid=0x8dc 等待监视器条目 [0x0000000043283000..0x0000000043283e30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_20 线程”prio=1 tid=0x0000002c05e6e410 nid=0x8db 等待监视器条目 [0x0000000043182000..0x0000000043182eb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_19 线程”prio=1 tid=0x0000002c05ee7a90 nid=0x8da 等待监视器条目 [0x0000000043081000..0x0000000043081d30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_18 线程”prio=1 tid=0x0000002c05ee6960 nid=0x8d9 等待监视器条目 [0x0000000042f80000..0x0000000042f80db0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_17 线程”prio=1 tid=0x0000002c05ee5280 nid=0x8d8 等待监视器条目 [0x0000000042e7f000..0x0000000042e7fc30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_16 线程”prio=1 tid=0x0000002c05ee3e60 nid=0x8d7 等待监视器条目 [0x0000000042d7e000..0x0000000042d7ecb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_15 线程”prio=1 tid=0x0000002c05ee2a10 nid=0x8d6 等待监视器条目 [0x0000000042c7d000..0x0000000042c7db30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_14 线程”prio=1 tid=0x0000002c05ee19f0 nid=0x8d5 等待监视器条目 [0x0000000042b7c000..0x0000000042b7cbb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_13 线程”prio=1 tid=0x0000002c0a55c820 nid=0x8d4 等待监视器条目 [0x0000000042a7b000..0x0000000042a7be30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_12 线程”prio=1 tid=0x0000002c0a55b6f0 nid=0x8d3 等待监视器条目 [0x000000004297a000..0x000000004297aeb0]
    在 com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    在 com.conceptwave.process.CwpPEContext.commitMemoryTransaction(CwpPEContext.java:99)
    在 com.conceptwave.process.CwpThread.commitPETransaction(CwpThread.java:90)
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:466)

“ProcessActivities_11 线程”prio=1 tid=0x0000002c0a55a010 nid=0x8d2 等待监视器条目 [0x0000000042879000..0x0000000042879d30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_10 线程”prio=1 tid=0x0000002c0a558bf0 nid=0x8d1 等待监视器条目 [0x0000000042778000..0x0000000042778db0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_09 线程”prio=1 tid=0x0000002c0a5577a0 nid=0x8d0 等待监视器条目 [0x0000000042677000..0x0000000042677c30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_08 线程”prio=1 tid=0x0000002c083ffb80 nid=0x8cf 等待监视器条目 [0x0000000042576000..0x0000000042576cb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_07 线程”prio=1 tid=0x0000002c083fe470 nid=0x8ce 等待监视器条目 [0x0000000042475000..0x0000000042475b30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_06 线程”prio=1 tid=0x0000002c083fd340 nid=0x8cd 可运行 [0x0000000042374000..0x0000000042374bb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:231)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_05 线程”prio=1 tid=0x0000002c083fbc60 nid=0x8cc 等待监视器条目 [0x0000000042273000..0x0000000042273e30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_04 线程”prio=1 tid=0x0000002c083fa840 nid=0x8cb 等待监视器条目 [0x0000000042172000..0x0000000042172eb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_03 线程”prio=1 tid=0x0000002c087bcb90 nid=0x8ca 可运行 [0x0000000042071000..0x0000000042071d30]
    在 com.conceptwave.process.CwpActivityInfoCache.checkForActivity(CwpActivityInfoCache.java:159)
    在 com.conceptwave.process.CwpActivityInfoCache.getExistingActivity(CwpActivityInfoCache.java:190)
    在 com.conceptwave.process.CwpProcess.getActivityIfExists(CwpProcess.java:2200)
    在 com.conceptwave.process.CwpProcess.isRunning(CwpProcess.java:1984)
    在 com.conceptwave.process.CwpActivityQueueThread.startPendingException(CwpActivityQueueThread.java:787)
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:405)

“ProcessActivities_02 线程”prio=1 tid=0x0000002c087bb770 nid=0x8c9 等待监视器条目 [0x0000000041f70000..0x0000000041f70db0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_01 线程”prio=1 tid=0x0000002c08a6dc30 nid=0x8c8 等待监视器条目 [0x0000000041e6f000..0x0000000041e6fc30]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“ProcessActivities_00 线程”prio=1 tid=0x0000002c08d15a50 nid=0x8c7 等待监视器条目 [0x0000000041d6e000..0x0000000041d6ecb0]
    在 com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)

“参与者队列”prio=1 tid=0x0000002c0a9b5330 nid=0x8c6 等待监视器条目 [0x0000000041c6d000..0x0000000041c6db30]
    在 com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    在 com.conceptwave.process.CwpPar​​ticipantsThread.processMatchedActivity(CwpPar​​ticipantsThread.java:436)
    在 com.conceptwave.process.CwpPar​​ticipantsThread.processWaitingQueue(CwpPar​​ticipantsThread.java:367)
    在 com.conceptwave.process.CwpPar​​ticipantsThread.run(CwpPar​​ticipantsThread.java:248)
    - 锁定(com.conceptwave.process.CwpPar​​ticipantsThread)

“全局请求队列”prio=1 tid=0x0000002c067cecf0 nid=0x8c5 等待监视器条目 [0x0000000041b6c000..0x0000000041b6cbb0]
    在 com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    在 com.conceptwave.process.CwpGlobalRequestsThread.processRequest(CwpGlobalRequestsThread.java:323)
    在 com.conceptwave.process.CwpGlobalRequestsThread.run(CwpGlobalRequestsThread.java:175)

“TaskDistribution Queue”prio=1 tid=0x0000002c096a7e40 nid=0x8c4 等待条件 [0x0000000041a6b000..0x0000000041a6be30]
    在 java.lang.Thread.sleep(本机方法)
    在 com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    在 com.conceptwave.process.CwpIncrementalWaitThread.waitCurrently(CwpIncrementalWaitThread.java:173)
    在 com.conceptwave.process.CwpTaskDistributionThread.run(CwpTaskDistributionThread.java:22)

“StartRestart Queue”prio=1 tid=0x0000002c09696c10 nid=0x8c3 等待监视器条目 [0x000000004196a000..0x000000004196aeb0]
    在 com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpStartProcessesThread.restartTheProcessList(CwpStartProcessesThread.java:181)
    在 com.conceptwave.process.CwpStartProcessesThread.run(CwpStartProcessesThread.java:87)

“全局进程队列”prio=1 tid=0x0000002c08c87990 nid=0x8c2 等待监视器条目 [0x0000000041869000..0x0000000041869d30]
    在 com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - 等待锁定(com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpGlobalProcessThread.enqueueCheckCommand(CwpGlobalProcessThread.java:199)
    在 com.conceptwave.process.CwpGlobalProcessThread.run(CwpGlobalProcessThread.java:126)

“SocketListener”prio=1 tid=0x0000002c061cfc50 nid=0x8a8 等待监听入口 [0x0000000041767000..0x0000000041768d30]
    在 com.conceptwave.process.CwpPar​​ticipantsThread.getDBCacheData(CwpPar​​ticipantsThread.java:450)
    - 等待锁定(com.conceptwave.process.CwpPar​​ticipantsThread)
    在 com.conceptwave.process.CwpProcess.getParticipantsQueueData(CwpProcess.java:1700)
    在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    在 java.lang.reflect.Method.invoke(Method.java:585)
    在 com.conceptwave.javascript.CwfScriptFunctionObject.call(CwfScriptFunctionObject.java:368)
    在 org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:76)
    在 org.mozilla.javascript.gen.c1422._c2((一个 com.conceptwave.process.CwpActivityQueue)
    在 com.conceptwave.process.CwpActivityQueue.enqueue(CwpActivityQueue.java:71)
    在 com.conceptwave.process.CwpProcessManager.putInActivityQueue(CwpProcessManager.java:1343)
    在 com.conceptwave.process.CwpDelayedActivitiesThread.run(CwpDelayedActivitiesThread.java:271)

“心跳”prio=1 tid=0x0000002c0c84ff90 nid=0x8a6 等待条件 [0x0000000041465000..0x0000000041465c30]
    在 java.lang.Thread.sleep(本机方法)
    在 com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    在 com.conceptwave.system.CwfAVMHeartBeat.run(CwfAVMHeartBeat.java:288)

“时钟线程”prio=1 tid=0x0000002c09dc2a20 nid=0x8a5 等待条件 [0x0000000041566000..0x0000000041566cb0]
    在 java.lang.Thread.sleep(本机方法)
    在 com.conceptwave.system.CwfBaseThread.waitForInterval(CwfBaseThread.java:144)
    在 com.conceptwave.system.CwfClockThread.run(CwfClockThread.java:32)

“线程 5”守护进程 prio=1 tid=0x0000002c07eec270 nid=0x706 等待条件 [0x0000000041364000..0x0000000041364cb0]
    在 java.lang.Thread.sleep(本机方法)
    在 oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)

“线程 4”守护进程 prio=1 tid=0x0000002c088ecde0 nid=0x705 等待条件 [0x0000000041263000..0x0000000041263b30]
    在 java.lang.Thread.sleep(本机方法)
    在 oracle.jdbc.pool.OracleImplicitConnectionCacheThread.run(OracleImplicitConnectionCacheThread.java:91)

“RMI TCP Accept-10001”守护进程prio=1 tid=0x0000002c07e7c730 nid=0x6c6 可运行[0x0000000041061000..0x0000000041061eb0]
    在 java.net.PlainSocketImpl.socketAccept(本机方法)
    在 java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    - 锁定(一个 java.net.SocksSocketImpl)
    在 java.net.ServerSocket.implAccept(ServerSocket.java:450)
    在 java.net.ServerSocket.accept(ServerSocket.java:421)
    在 sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)
    在 java.lang.Thread.run(Thread.java:595)

“RMI TCP Accept-0”守护进程prio=1 tid=0x0000002c07e78c70 nid=0x6c5 可运行[0x0000000040f60000..0x0000000040f60d30]
    在 java.net.PlainSocketImpl.socketAccept(本机方法)
    在 java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)
    - 锁定(一个 java.net.SocksSocketImpl)
    在 java.net.ServerSocket.implAccept(ServerSocket.java:450)
    在 java.net.ServerSocket.accept(ServerSocket.java:421)
    在 sun.rmi.transport.tcp.TCPTransport.run(TCPTransport.java:340)
    在 java.lang.Thread.run(Thread.java:595)

“Timer-0”守护进程prio=1 tid=0x0000002c061fb720 nid=0x6c4 in Object.wait() [0x0000000040e5f000..0x0000000040e5fdb0]
    在 java.lang.Object.wait(本机方法)
    - 等待(java.util.TaskQueue)
    在 java.lang.Object.wait(Object.java:474)
    在 java.util.TimerThread.mainLoop(Timer.java:483)
    - 锁定(一个 java.util.TaskQueue)
    在 java.util.TimerThread.run(Timer.java:462)

“内存不足检测器”守护进程 prio=1 tid=0x0000002c02f2ecd0 nid=0x6c3 可运行 [0x0000000000000000..0x0000000000000000]

“CompilerThread1”守护进程prio=1 tid=0x0000002c02f2d0a0 nid=0x6c2 等待条件[0x0000000000000000..0x0000000040c5c610]

“CompilerThread0”守护进程prio=1 tid=0x0000002c02f2baf0 nid=0x6c1 等待条件[0x0000000000000000..0x0000000040b5b460]

“AdapterThread”守护进程prio=1 tid=0x0000002c02f2a390 nid=0x6c0 等待条件[0x0000000000000000..0x0000000000000000]

“信号调度程序”守护进程prio=1 tid=0x0000002c02f29030 nid=0x6bf 等待条件[0x0000000000000000..0x0000000000000000]

“终结器”守护进程prio=1 tid=0x0000002c02f14d60 nid=0x6be in Object.wait() [0x0000000040859000..0x0000000040859eb0]
    在 java.lang.Object.wait(本机方法)
    - 等待(java.lang.ref.ReferenceQueue$Lock)
    在 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
    - 锁定(java.lang.ref.ReferenceQueue$Lock)
    在 java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
    在 java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

“引用处理程序”守护进程 prio=1 tid=0x0000002c02f14530 nid=0x6bd in Object.wait() [0x0000000040758000..0x0000000040758d30]
    在 java.lang.Object.wait(本机方法)
    - 等待(java.lang.ref.Reference$Lock)
    在 java.lang.Object.wait(Object.java:474)
    在 java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
    - 锁定(java.lang.ref.Reference$Lock)

“主要”prio=1 tid=0x00000000401164d0 nid=0x6b6 in Object.wait() [0x0000007fbfffc000..0x0000007fbfffd080]
    在 java.lang.Object.wait(本机方法)
    - 等待(java.lang.Class)
    在 java.lang.Object.wait(Object.java:474)
    在 com.conceptwave.process.CwpProcessManager.main(CwpProcessManager.java:397)
    - 锁定(java.lang.Class)

“VM 线程”prio=1 tid=0x0000002c02f10060 nid=0x6bc 可运行

“GC 任务线程#0 (ParallelGC)”prio=1 tid=0x0000000040133d50 nid=0x6b7 可运行

“GC 任务线程#1 (ParallelGC)”prio=1 tid=0x0000000040134bd0 nid=0x6b8 可运行

“GC 任务线程#2 (ParallelGC)”prio=1 tid=0x0000000040135a50 nid=0x6b9 可运行

“GC 任务线程#3 (ParallelGC)”prio=1 tid=0x00000000401368d0 nid=0x6ba 可运行

“VM 周期性任务线程”prio=1 tid=0x0000002c07e87830 nid=0x6c7 等待条件
4

1 回答 1

2

首先,将来请减少您的线程转储。大量线程是重复的,可能已经被标记为这样。

在我看来,您有某种锁争用。我很惊讶 JVM 没有将其标记为死锁,但也许它不是嵌套锁问题。

你有几个:

"Participants Queue" prio=1 tid=0x0000002c0a9b5330 nid=0x8c6 waiting for monitor entry [0x0000000041c6d000..0x0000000041c6db30]
    at com.conceptwave.process.CwpActivityPriorityQueue.putInQueue(CwpActivityPriorityQueue.java:55)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

然后你有一个似乎正在工作的线程:

"ProcessActivities_03 Thread" prio=1 tid=0x0000002c087bcb90 nid=0x8ca runnable [0x0000000042071000..0x0000000042071d30]
    at com.conceptwave.process.CwpActivityInfoCache.checkForActivity(CwpActivityInfoCache.java:159)
    at com.conceptwave.process.CwpActivityInfoCache.getExistingActivity(CwpActivityInfoCache.java:190)
    at com.conceptwave.process.CwpProcess.getActivityIfExists(CwpProcess.java:2200)

也许它陷入了一个循环?它持有什么锁?

你也有很多这样的:

"ProcessActivities_29 Thread" prio=1 tid=0x0000002c06961d50 nid=0x8e4 waiting for monitor entry [0x0000000043a8b000..0x0000000043a8be30]
    at com.conceptwave.process.CwpActivityQueueThread.run(CwpActivityQueueThread.java:490)
    - waiting to lock  (a com.conceptwave.process.CwpActivityQueue)

不知道是什么阻碍了他们。这些线程都没有被标记为守护进程,因此它们都必须自己完成或以其他方式检测到关闭信号(如volatile boolean shutdown字段)才能退出。如果他们不退出,那么您的 JVM 将永远不会自行关闭。

于 2011-11-07T23:02:50.640 回答