# jstack线程分析

# 先附上jstack命令

在这里插入图片描述

# 1. 通过linux的top命令,显示当前活跃线程数,为CPU使用率降序排列

在这里插入图片描述

# 2. 使用jstack pid(示例:jstack 10420)命令查看java进程的堆栈状态

在这里插入图片描述在这里插入图片描述

# 3. 通过thread dump分析线程状态

例如:jstack -F 10420 在这里插入图片描述 大多数情况下会基于thead dump分析当前各个线程的运行情况,如是否存在死锁、是否存在一个线程长时间持有锁不放等等。

在dump中,线程一般存在如下几种状态:

  1. RUNNABLE,线程处于执行中
  2. BLOCKED,线程被阻塞
  3. WAITING,线程正在等待

通过分析堆栈信息,定位线程卡在哪一个任务或操作上,从而定位到问题所在。

Last Updated: 5/24/2021, 10:37:17 AM