What to scan first
- BLOCKED on the same monitor → lock contention.
WAITINGonparkingwithCompletableFuture→ async coordination stalls.- Deadlock footer — helpful when present, not guaranteed.
- Virtual threads — huge counts are normal; find carriers stuck in
RUNNABLE(pinning).
jcmd <pid> Thread.print > threads.txt
# or
jstack <pid>
Take three dumps ten seconds apart when chasing CPU — the stack that repeats on a hot RUNNABLE thread is your suspect.
The rest of this guide is part of Pro
Free covers every fresher guide in full. Pro unlocks Senior, Staff and Architect guides across every track.
Still to come · 1 section
- Capture commands
Test yourself
Answer these before moving on — recall is what makes it stick.