2017-11-07 8 views
2

스레드 덤프를 분석하면 이미 잠겨있는 모니터를 잠그기 위해 기다리고있는 많은 스레드가 있습니다. 아래 예제에서 모니터 0x000000044158d3d0은 동시에 가져 와서 잠 깁니다.Java 스레드가 이미 잠긴 개체를 잠그기 위해 대기 중임

이 사례에 대한 단서가 있습니까?

"ORB Run Thread" #124 prio=5 os_prio=0 tid=0x00007f16a81b6800 
nid=0x76f3 in Object.wait() [0x00007f165eef2000] 
java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x000000044158d3d0> (a java.lang.Object) 
    at java.lang.Object.wait(Object.java:502) 
    at com.sun.corba.se.impl.orb.ORBImpl.run(ORBImpl.java:1238) 
    - locked <0x000000044158d3d0> (a java.lang.Object) 
    at org.wildfly.iiop.openjdk.service.CorbaORBService$ORBRunner.run(CorbaORBService.java:241) 
    at java.lang.Thread.run(Thread.java:748) 

답변

5
at java.lang.Object.wait(Native Method) 
- waiting on <0x000000044158d3d0> (a java.lang.Object) 

는 스레드 개체를 잠글 기다리고되지 않습니다. 다른 스레드가 notify() 또는 notifyAll()을 호출하기를 기다리고 있습니다.