# jstack线程分析
# 先附上jstack命令
# 1. 通过linux的top命令,显示当前活跃线程数,为CPU使用率降序排列
# 2. 使用jstack pid(示例:jstack 10420)命令查看java进程的堆栈状态
# 3. 通过thread dump分析线程状态
例如:jstack -F 10420 大多数情况下会基于thead dump分析当前各个线程的运行情况,如是否存在死锁、是否存在一个线程长时间持有锁不放等等。
在dump中,线程一般存在如下几种状态:
- RUNNABLE,线程处于执行中
- BLOCKED,线程被阻塞
- WAITING,线程正在等待
通过分析堆栈信息,定位线程卡在哪一个任务或操作上,从而定位到问题所在。