我在solaris机器上使用java 1.6。
我使用以下命令从核心文件/usr/java/bin/jstack -J-d64 /usr/java/bin/java core
我得到了以下输出,显示该线程处于BLOCKED
状态,但它没有显示它正在等待的线程。
Thread t@165517: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- java.lang.Object.wait() @bci=2, line=485 (Compiled frame)
- org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8, line=416 (Compiled frame)
- org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=11, line=442 (Compiled frame)
- java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)
Thread t@165516: (state = BLOCKED)
- java.lang.Object.wait(long) @bci=0 (Interpreted frame)
- java.lang.Object.wait() @bci=2, line=485 (Compiled frame)
- org.apache.tomcat.util.net.JIoEndpoint$Worker.await() @bci=8, line=416 (Compiled frame)
- org.apache.tomcat.util.net.JIoEndpoint$Worker.run() @bci=11, line=442 (Compiled frame)
- java.lang.Thread.run() @bci=11, line=662 (Interpreted frame)
如何从具有
等输出格式的核心文件中获取线程转储daemon prio=3 tid=0x0000000100d4cc00 nid=0x4576 in Object.wait() [0xfffffffd35cff000..0xfffffffd35cff640]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xfffffffd70277c58> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at java.lang.Object.wait(Object.java:485)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.await(JIoEndpoint.java:416)
- locked <0xfffffffd70277c58> (a org.apache.tomcat.util.net.JIoEndpoint$Worker)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:442)
at java.lang.Thread.run(Thread.java:619)
谢谢,海伦