Java 命令 jps 与 jstack 快速定位线程状态

在项目中,当程序处于长时间停顿的时候,可以使用java提供的jstack命令跟踪正在执行方法的堆栈情况,jstack能够生成虚拟机当前时刻的线程堆栈情况。主要,监控线程的状态,判断出线程停顿的原因。例如,死锁,死循环,多个线程等待等等。线程的状态包括NEW,RUNNABLE,BLOCKED,WAITING,TIMED_WAITING,TERMINATED。

 

1、线程状态跟踪

(1) jps 

jps命令,查询正在运行的虚拟机java进程,一般显示信息就是,pid和进程名称:

(2) jstack

使用jstack [pid] 输出当前进程的堆栈信息。主要有两种使用方式,如下:

  将堆栈信息输出到执行文件 jstack pod > file,输出pid 11840的进程堆栈信息存储到dump11840文件中,执行命令jstack 11840 > C:\Users\86151\Desktop\dump11840。结果如下:

猜你喜欢

转载自www.cnblogs.com/Latiny/p/12815290.html