Understanding Thread Dumps

Keep in mind the following points while working with thread dumps.

  • A thread dump displays the thread name, thread id (tid), which is the address of the thread structure in memory, id of the native thread (nid) which correlates to the OS thread id, thread priority, state (runnable, waiting, blocked, and so on), source code line and method calls.
  • Waiting on monitor and waiting for monitor entry - It is very important to understand the difference between the Waiting on monitor state and waiting for monitor entry state. Waiting on monitor means sleep or wait on an object for a specific period or until notified by another thread. Waiting for monitor means to wait to lock an object since some other thread may be holding the lock, which can happen in a synchronized code.
  • IBM Thread Dump Analyzer can be used for further analysis. For more details, refer to https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=2245aa39-fa5c-4475-b891-14c205f7333c