千家信息网

Java中怎么利用 jstack分析线程状态

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇文章给大家分享的是有关Java中怎么利用 jstack分析线程状态,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。jstck 是什么?
千家信息网最后更新 2026年11月02日Java中怎么利用 jstack分析线程状态

本篇文章给大家分享的是有关Java中怎么利用 jstack分析线程状态,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

jstck 是什么? 这个是 Oracle JDK 默认包含的一个用于打印执行 Java 进程的当前线程栈信息的工具。官方是这样介绍的:

jstack prints Java stack traces of Java threads for a given Java process or core file or a remote debug server. For each Java frame, the full class name, method name, 'bci' (byte code index) and line number, if available, are printed.

注意其中几个关键点:每一个 Java Frame 的全类名,方法名,如果能拿到行号的话还会显示行号。看过前面介绍调试技巧那篇文章(80%的程序员都不了解的调试技巧)的朋友可能还记得,其中有一个功能是Drop Frame, 来实现后退执行。和这里的是一个地方,都对应线程中的一级调用。

使用 jstack 打出来的信息,和一般应用遇到异常时的 printStackTrace 基本一样,只是那只是一个线程调用链的,这里通过工具,可以把应用内所有线程都打出来。

用法

使用方式和一般的 Java 分析工具类似,都是通过

命令名 <可选参数> + pid(进程id)

这种格式使用。比如对于 jstack, 一般可以直接 jstack 应用pid 即可。这里 pid 可以通过Java的 jps 工具获取,也可以通过 Linux 下的ps 工具和 Windows 下的任务管理器获取。

输出

我们以一个Tomcat进程为例,输出类似这样:

我们看上面的几个框:

最上方左侧,是当前线程的线程名称,可以根据此来在应用内大量的线程中找到我们关心的线程正在执行的操作。例如 Tomcat 一般 http-port -x 这种线程是请求的处理线程,页面响应慢的时候,可以直接找这一类线程。

随着请求的增多,线程数也会很多。所以一般多线程应用开发,一个好的实战建议是为创建的线程起一个有意义的名字,否则打出来的 stack 里大量的 thread -1, thread -2 这种,天晓得哪一个才是你的。

第二行的框内内容,表示当前线程的执行状态,是运行状态还是TIME_WAITING,还是等待锁等,可以根据线程状态来了解。

第三个大框中的内容就和我们异常时输出的 stackTrace 一样,是当前代码的调用链。

第四个框中的内容,是当前线程挂的锁的情况。

上面的截图,是没有锁互相占用的情况下的输出。如果一个多线程中有锁等待时,会有类似这样的输出:

注意,此时线程状态变成了 BLOCKED, 同时,在线程的调用链中,有一个waiting to lock 的输出, 同时,在下方持胡锁的线程中,会有一个 lock xxx,这个是当前锁对象,通过这个就可以看出当前还有哪些线程在等待同一个锁。

所以回到前面的问题,如果此时因为锁占用导致的,可以从输出中看到,同时如果是数据库连接池满了,线程就会停在数据库连接的操作上,在 stackTrace 中一眼就能看的出来,甚至网络 Socket 读取之类的在等待,都会在调用链中体现出来,从而可以快速的定位问题,解决问题。

以上就是Java中怎么利用 jstack分析线程状态,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

线程 输出 状态 工具 应用 分析 内容 同时 篇文章 进程 问题 信息 只是 可以通过 情况 技巧 数据 数据库 更多 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳市人人互联网科技有限公司 金融科技还是互联网 河南真二互联网科技有限公司 中资互联网科技 唐信互联网科技 菲比寻常互联网科技 上游互联网科技 互联网科技大会 新华互联网科技校企合作 华中科技有哪些互联网大佬 江苏南京365互联网科技 昭通云南众福互联网科技有限公司 新兴科技互联网创新大赛颁奖典礼 互联网媒体平台算高科技产业 中国科技创新与世界互联网大会 华中科技大学互联网的牛人 国大互联网教育科技有限公司薪资 互联网科技包装股 广州梦谷互联网科技有限公司领导 银川新华互联网科技学校招聘 手冲咖啡和咖啡机区别 江苏根荣互联网科技 互联网通讯科技 朗新科技与工业互联网 重庆互联网络科技 西安互联网科技 彤创互联网科技有限公司 工业互联网展湾科技股份有限公司 北京互联网科技类企业分布 长沙易易互联网科技有限公司
0