如何查看java线程
查看 Java 线程的方法
使用 jstack 工具
jstack 是 JDK 自带的命令行工具,可以生成 Java 进程的线程快照。通过以下命令查看线程状态:
jstack <pid>
其中 <pid> 是 Java 进程的 ID,可以通过 jps 命令获取。
使用 jvisualvm 工具
jvisualvm 是 JDK 提供的图形化监控工具,可以直观查看线程状态:

- 运行
jvisualvm命令启动工具。 - 在左侧选择目标 Java 进程。
- 切换到“线程”标签页,查看线程的详细信息和堆栈。
通过代码打印线程信息
在 Java 程序中,可以通过 Thread.getAllStackTraces() 获取所有线程的堆栈信息:
Map<Thread, StackTraceElement[]> threads = Thread.getAllStackTraces();
for (Thread thread : threads.keySet()) {
System.out.println("Thread: " + thread.getName());
for (StackTraceElement element : threads.get(thread)) {
System.out.println("\t" + element);
}
}
使用 jcmd 工具
jcmd 是 JDK 提供的多功能命令行工具,可以查看线程信息:

jcmd <pid> Thread.print
通过 IDE 调试
在 IntelliJ IDEA 或 Eclipse 等 IDE 中,调试时可以查看线程状态:
- 启动调试模式。
- 在调试视图中查看“Threads”面板,显示所有活动线程的堆栈信息。
使用第三方工具
工具如 Arthas 或 YourKit 提供更强大的线程分析功能:
Arthas通过thread命令查看线程状态。YourKit提供图形化界面分析线程阻塞和性能问题。






