ThreadLogic : 아직까지 보기엔 제일 나은 듯. 다중 쓰레드 덤프 못 읽는 문제 생긴 듯.
waiting 하고 있는 monitor가 있는데 어느 쓰레드가 해당 monitor를 locking 하고 있는지 정보가 없는 상황
Thread Dump를 떴을 때 분명 wait for <monitor_num>은 존재하는데 locked <nonitor_num>은 존재하지 않는 경우가 있음.
TDA 가 출력한 내용에 따르면,
a VM Thread is holding it.
This lock is a java.util.concurrent lock and the thread holding it is not reported in the stack tracebecause the JVM option -XX:+PrintConcurrentLocks is not present.
This lock is a custom java.util.concurrent lock either not based off of AbstractOwnableSynchronizer or not setting the exclusive owner when a lock is granted.
일반적으로는 java.util.concurrent lock 인 경우로 보이며 JVM option -XX:+PrintConcurrentLocks로 JVM을 띄워야 명백히 lock을 잡은 쓰레드가 보임.
nid/tid
tid : java가 스스로 붙이는 쓰레드 단위 ID
nid : Native ID. OS 차원의 쓰레드 ID, linux에서는 top -H로 볼 때 PID라고 보임.