arthas常用命令(四)-- thread

发布时间 2023-06-24 11:18:38作者: 乐之者v

thread命令

  • 参数说明
参数名称 参数说明
id 线程 id
-n 指定最忙的前 N 个线程并打印堆栈
-b 找出当前阻塞其他线程的线程
-i 指定 cpu 使用率统计的采样间隔,单位为毫秒,默认值为 200
--all 显示所有匹配的线程
  • thread 常用的命令

输入thread,双击 tab,可以看到 thread 相关的所有命令。

  • 显示第一页的线程
thread

thread 没有参数时,默认按照 CPU 增量时间降序排列,只显示第一页数据。

  • 显示所有的线程
thread -all

结果如下:

  • 指定线程id
thread 5
  • 指定最忙的前 N 个线程并打印堆栈
thread -n 5

结果如下:

结果的含义如下:

Id:线程 ID。如果没有线程 ID,包含`[Internal]`的表示为 JVM 内部线程。
cpuUsage为采样间隔时间内线程的 CPU 使用率。
deltaTime为采样间隔时间内线程的增量 CPU 时间,小于 1ms 时被取整显示为 0ms。
time:线程运行总 CPU 时间。
  • 找出当前阻塞其他线程的线程:
thread -b
  • 指定采样时间间隔
thread -i 1000 : 统计最近 1000ms 内的线程 CPU 时间。

thread -n 3 -i 1000 : 列出 1000ms 内最忙的 3 个线程栈
  • 查看指定状态的线程:

NEW: 新建, RUNNABLE: 运行中, BLOCKED: 阻塞,

WAITING: 等待, TIMED_WAITING: 105, TERMINATED: 终止

超时等待(TIMED_WAITING):该状态不同于WAITING,它可以在指定的时间后自行返回。

示例:展示等待状态的线程。

thread --state WAITING

结果如下:

Total表示总数 。

参考资料:

https://arthas.gitee.io/doc/thread.html