Java 命令 jps 与 jstack 快速定位线程状态
Posted 知行合一
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。结果如下:
以上是关于Java 命令 jps 与 jstack 快速定位线程状态的主要内容,如果未能解决你的问题,请参考以下文章
JVM性能监控与故障处理命令汇总(jpsjstatjinfojmapjhatjstack)