百度百科介绍
Thread Dump --> 文本文件
Linux: kill -3 pid --> Thread Dump
Windows: Ctrl+Break --> Thread Dump
2012-09-12 17:25:48
Full thread dump Java HotSpot(TM) Client VM (19.1-b02 mixed mode, sharing):
"DestroyJavaVM" prio=10 tid=0x089c9c00 nid=0x37a8 waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Thread-1" prio=10 tid=0x08a6cc00 nid=0x37b1 waiting for monitor entry [0xb4db0000]
java.lang.Thread.State: BLOCKED (on object monitor)
at demo.deadlock.ThreadB.run(DeadLock.java:70)
- waiting to lock <0x815c0258> (a java.lang.Object)
- locked <0x815c0260> (a java.lang.Object)
"Thread-0" prio=10 tid=0x08a22400 nid=0x37b0 waiting for monitor entry [0xb4e02000]
java.lang.Thread.State: BLOCKED (on object monitor)
at demo.deadlock.ThreadA.run(DeadLock.java:43)
- waiting to lock <0x815c0260> (a java.lang.Object)
- locked <0x815c0258> (a java.lang.Object)
"Low Memory Detector" daemon prio=10 tid=0x08a0d400 nid=0x37ae runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x08a01c00 nid=0x37ad waiting on condition [0x00000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x08a00400 nid=0x37ac runnable [0x00000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x089f9000 nid=0x37ab in Object.wait() [0xb51f6000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x81591140> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
- locked <0x81591140> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x089f7800 nid=0x37aa in Object.wait() [0xb5247000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x81591040> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x81591040> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x089ed400 nid=0x37a9 runnable
"VM Periodic Task Thread" prio=10 tid=0x08a0f400 nid=0x37af waiting on condition
JNI global references: 879
Found one Java-level deadlock:
=============================
"Thread-1":
waiting to lock monitor 0x089fd840 (object 0x815c0258, a java.lang.Object),
which is held by "Thread-0"
"Thread-0":
waiting to lock monitor 0x089fc008 (object 0x815c0260, a java.lang.Object),
which is held by "Thread-1"
Java stack information for the threads listed above:
===================================================
"Thread-1":
at demo.deadlock.ThreadB.run(DeadLock.java:70)
- waiting to lock <0x815c0258> (a java.lang.Object)
- locked <0x815c0260> (a java.lang.Object)
"Thread-0":
at demo.deadlock.ThreadA.run(DeadLock.java:43)
- waiting to lock <0x815c0260> (a java.lang.Object)
- locked <0x815c0258> (a java.lang.Object)
Found 1 deadlock.
Heap
def new generation total 4288K, used 408K [0x81590000, 0x81a30000, 0x86030000)
eden space 3840K, 10% used [0x81590000, 0x815f61c8, 0x81950000)
from space 448K, 0% used [0x81950000, 0x81950000, 0x819c0000)
to space 448K, 0% used [0x819c0000, 0x819c0000, 0x81a30000)
tenured generation total 9536K, used 0K [0x86030000, 0x86980000, 0x8f590000)
the space 9536K, 0% used [0x86030000, 0x86030000, 0x86030200, 0x86980000)
compacting perm gen total 12288K, used 35K [0x8f590000, 0x90190000, 0x93590000)
the space 12288K, 0% used [0x8f590000, 0x8f598ce0, 0x8f598e00, 0x90190000)
ro space 10240K, 61% used [0x93590000, 0x93bb8a38, 0x93bb8c00, 0x93f90000)
rw space 12288K, 60% used [0x93f90000, 0x946c8ec0, 0x946c9000, 0x94b90000)