Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →A Java thread dump is a snapshot of what threads were doing at one moment—not a complete diagnosis. To investigate a hang or slowdown, start with threads related to the symptom, interpret their states and top stack frames, trace lock ownership, and compare additional dumps to see whether the pattern persists. Oracle’s Java SE 24 Troubleshooting Guide recommends jcmd or jhsdb jstack for diagnosis; use the documentation and command options for the JVM actually running your application.
Capture a thread dump you can interpret
First record the affected JVM, the time of capture, the symptom, and any known request or workload. A dump detached from that context can show activity without explaining why it matters.
Use a JDK diagnostic command
Oracle’s Java SE 24 Troubleshooting Guide recommends jcmd or jhsdb jstack to diagnose a Java process. The reviewed JDK 26 early-access jcmd reference documents examples such as:
jcmd <pid> Thread.print -l
jcmd <pid> Thread.dump_to_file -format=plain <file>
jcmd <pid> Thread.dump_to_file -format=json <file>
Replace <pid> with the Java process ID and, for file output, <file> with the destination path. The JDK 26 early-access reference says Thread.print prints platform threads and mounted virtual threads and provides extended information and java.util.concurrent lock output options. Thread.dump_to_file writes plain-text or JSON output. These exact commands and virtual-thread details are release-specific: check the target JVM’s own command help and documentation before using them in production.
Request a dump with an operating-system signal
On Linux, kill -QUIT <pid> requests a HotSpot thread dump; Ctrl+ at the Java console is another option. Oracle documents Ctrl+Break on Windows. Signal-triggered output goes to the process’s standard output, which may be redirected to a service log or another destination, so confirm where that output is collected. For more context on obtaining a dump from a Java process or core file on Linux, see Oracle’s thread-dump instructions.
Read from the symptom to the evidence
- Start with relevant threads. Look for application threads connected to the affected request, subsystem, or workload instead of reading the entire dump line by line.
- Treat thread state as a clue, not a verdict. Oracle describes
BLOCKEDas waiting to acquire a monitor lock;WAITINGandTIMED_WAITINGindicate waits. ARUNNABLEthread deserves attention when the symptom suggests a loop or high CPU, but that label alone does not establish that it is actively consuming CPU. Native frames may help explain what a runnable thread is doing. - Read stack frames from the top. The top frames show the immediate call path. Relate them to application methods, framework work, and line numbers when present; method names alone do not establish whether the work is expected or faulty.
- Trace locks to their owners. Identify the thread that owns a monitor or synchronizer and the threads waiting for it. Oracle notes that
-lincludes ownable synchronizers andjava.util.concurrentlock information; without it, monitor details may be limited. - Look for a reported deadlock. A reported cycle of threads waiting on locks is strong evidence of a deadlock. If no cycle appears, a hang is still possible: inspect waits, callers, and the application’s notification logic.
- Compare captures to find movement—or its absence. A thread may be in a normal transient state in one snapshot. Repeatedly identical stacks among relevant threads, or a thread that remains continuously busy, are more informative patterns. For an IDE freeze specifically, JetBrains Support recommends several dumps 1–2 seconds apart. That interval is IDE guidance, not a universal rule for every Java application.
- Investigate native frames when Java frames are not enough. Oracle documents
jhsdb jstack --mixedfor showing Java and native frames.jhsdb jstackcan also analyze a core file; availability depends on the operating system and JVM setup.
Choose the capture method that fits the situation
| Approach | Access and output | What to consider |
|---|---|---|
jcmd |
JDK diagnostic tool; can print a dump or write one to a selected file, depending on the command and JVM version. | Check the target JVM’s supported commands and options. The reviewed JDK 26 early-access reference documents platform threads and mounted virtual threads for Thread.print. |
| Console or operating-system signal | Ctrl+ at a Java console or kill -QUIT <pid> on Linux; Oracle documents Ctrl+Break on Windows. Output is written to process standard output. |
Use when the process console or redirected output is accessible; establish the output destination before searching for the dump. |
jhsdb jstack |
JDK diagnostic tool for process or core-file analysis; --mixed requests Java and native frames. |
Operating-system and JVM setup affect availability. Check the deployed JDK’s documentation. |
These methods do not produce interchangeable evidence in every setup: consider how you can reach the JVM, where output will go, whether you need lock or virtual-thread information, and whether native frames or core-file analysis are necessary.
Rank #2
What a thread dump can—and cannot—tell you
A dump records thread stacks and states at capture time. It can show a lock wait, a call path, or a deadlock report, but one snapshot may catch a temporary condition and may not explain the application’s broader behavior. Compare timestamps and relevant stacks across captures when you need to determine whether threads are progressing or repeating the same pattern.
Oracle’s Troubleshooting Guide for Java SE 24, dated August 13, 2025, states: “The thread dump does not terminate the application: it continues after the thread information is printed.” A dump request is therefore a diagnostic capture, not by itself a command to stop the application.
Free tools Windows power users keep installed
One-click scans. No signup required.
Quick Recap
Best Value
Rank #4
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

