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,線程正在等待

通過分析堆棧信息,定位線程卡在哪一個任務或操作上,從而定位到問題所在。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章