Java / Java Multithreading
How to debug and analyse Thread deadlock?
We may analyse any deadlock by getting the thread dump and verifying the stack trace of the active threads. we may looks for the threads that are BLOCKED, the resource it is waiting for, the thread that is currently holding the lock from the stack trace.
Since JDK 1.5 there are some powerful methods added in the java.lang.management package to diagnose and detect deadlocks. The java.lang.management.ThreadMXBean interface is management interface for the thread system of the Java virtual machine. It has two methods which can leveraged to detect deadlock in a Java application.
findMonitorDeadlockedThreads() method detects cycles of threads that are in deadlock waiting to acquire object monitors and returns an array of thread IDs that are deadlocked waiting on monitor.
findDeadlockedThreads() method returns an array of thread IDs that are deadlocked waiting on monitor or ownable synchronizers.
More Related questions...