2013-11-26 27 views
6

我有一個應用程序的threaddump顯示3個線程如下。java threadump「等待條件」的意義

===============

"http-443-11" daemon prio=10 tid=0x00000000473bc800 nid=0x3590 waiting on condition [0x0000000061818000] 
    java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000007612a3880> (a java.util.concurrent.Semaphore$NonfairSync) 

"http-443-4" daemon prio=10 tid=0x00000000451f6000 nid=0x243a waiting on condition [0x0000000055354000] 
    java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000007612a3880> (a java.util.concurrent.Semaphore$NonfairSync) 

"http-443-7" daemon prio=10 tid=0x000000004602e000 nid=0x2974 waiting on condition [0x000000005e6e7000] 
    java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x00000007612a3880> (a java.util.concurrent.Semaphore$NonfairSync) 

===============

是什麼意義「等待條件[]」? []中的數字表示什麼?

回答

0

在線程堆棧中,我們可以看到線程是守護線程並等待任務前來。由於這些線程是在JVM啓動時創建的,因此它們不會被殺死,除非JVM退出或任何非守護進程線程沒有運行,因此它們將等待任務的到來。說垃圾收集線程是可能不會一直運行的daemoon線程,它可能處於等待狀態。

+0

我們看到的3個線程是守護程序線程 - 由Tomcat AppServer創建。不過,這些線程並不是在「JVM」啓動時創建的。 – anjanb