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。结果如下:

 

posted @ 2020-05-01 23:04  Latiny  阅读(631)  评论(0编辑  收藏  举报