2013-11-26 9 views
6

Ich habe einen Threaddump einer App, die 3 Threads wie unten angezeigt.java threadump Bedeutung von "Warten auf Bedingung"

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

"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) 

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

Was ist die Bedeutung von das "Warten auf Bedingung []"? Was bedeutet die Nummer in der []?

Antwort

0

Im Thread-Stack können wir sehen, dass Threads Daemon-Threads sind und auf eine Aufgabe warten. Da diese Threads beim JVM-Start erstellt werden, werden sie nicht beendet, es sei denn, JVM wird beendet oder ein Nicht-Daemon-Thread wird nicht ausgeführt. Daher warten sie, bis Aufgaben kommen. Angenommen, der Garbage-Collection-Thread ist ein Daemoon-Thread, der möglicherweise nicht ständig ausgeführt wird, er könnte sich im Wartezustand befinden.

+0

Die 3 Threads, die wir sehen, sind Daemon-Threads - erstellt vom Tomcat AppServer. Diese Threads werden jedoch nicht beim Start von "JVM" erstellt. – anjanb