---
title: 查看线程信息
description: "已创建在线分析任务，且分析任务正在进行中。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/devkit_25_1_rc1/usermanual/devkit-hypertuner-103.html
sourcePath: /source/zh/kunpengdevkithistory/devkit_25_1_rc1/usermanual/devkit-hypertuner-103.html
indexId: b1cbb0db27be8de31f916b94f213b44c67abd8601b0c9ea9e02078be59fec16c85
---
# 查看线程信息

#### 前提条件

已创建在线分析任务，且分析任务正在进行中。


#### 操作步骤

1. 在Java性能分析工具界面的“任务/报告列表”区域单击“在线分析”列表中指定分析任务的名称。
  打开“概览”页面。

2. 单击“CPU”页签。
  默认打开“线程列表”页面，如图1所示。 “线程列表”列出当前分析的Java进程启动的线程名称和线程状态。线程可以是以下状态之一：Runnable、Waiting或Blocked。 可通过线程搜索框和“显示用法”快速筛选数据。 “执行线程转储”按钮可转储当前线程状态，便于后续页签分析展示。 图1 线程状态

3. 单击“线程转储”页签。
  默认进入“线程概览”，单击指定线程转储查看对应线程的概览情况，如图2所示。

  Java的线程转储指的是JVM中在某一个给定的时刻运行的所有线程的快照。 单击页面左侧按钮可以删除不同时间的线程转储事件信息。 单击页面左侧按钮可以保存当前线程转储信息，同一线程信息只能保存一次，可在主界面“数据列表”查看或下载。 可在数据展示区域的表头单击图标搜索需要查看的线程名称或线程ID，单击图标对状态、类型和优先级进行筛选展示，单击图标可对CPU(ms)和Elapsed(s)参数进行排序，单击图标可对表头展示参数进行设置，也可单击“查看”展示线程的Monitor详情。

  图2 线程概览

4. 单击“线程转储”页签中的“栈分布”页签。
  可在左侧单击指定线程转储查看对应线程栈分布详情，如图3所示。

  单击“展开”或“收起”对堆栈信息进行全部或部分显示。 表头单击图标搜索堆栈信息，单击图标可进行筛选展示，单击图标可排序展示。

  图3 栈分布

5. 单击“线程转储”页签中的“Monitor状态分布”页签。
  可在左侧单击指定线程转储查看对应线程的Monitor状态分析详情，如图4所示。

  查询分组支持“全部”、“WAITING”和“LOCKED”；查询分类支持“Monitor ID”、“Monitor类名”、“线程”和“Monitor ID/Monitor类名”，可输入多个Monitor类名或Monitor ID进行查询，其中使用“,”分隔开。

  图4 Monitor状态分布

6. 单击“线程转储”页签中的“锁分析图”页签。
  可在左侧单击指定线程转储查看线程锁分析图，如图5所示。 在锁分析图中，左侧为线程，其颜色表示线程状态，绿色为RUNNABLE状态，红色为BLOCKED状态，黄色为WAITING状态，橙色为TIMED_WAITING状态；右侧为锁实例。 锁分析图通过连线表示线程对锁的占有情况。实线表示线程已占有锁，虚线表示线程阻塞在对应锁实例上，等待其他线程释放锁后占有。 观察模式：开启后，单击锁，会高亮显示锁本身和与请求的线程；也可切换以线程为观察视角，单击线程，将会高亮显示线程本身与持有锁。 对比模式：开启后，需要选择要对比的线程转储，对比结果默认以锁为视角显示两个线程与持有的锁。建议对比模式配合观察模式，方便观察两个时间点线程与持有锁的状态变化。也可以切换为以线程为观察视角，观察两个时间点的某个锁和请求线程的状态变化。只有执行两次及以上线程转储之后才可以开启对比模式。 如果目标Java应用中存在死锁，会检测出死锁，可以结合线程转储，定位死锁产生原因。 右下角可根据图标进行“锁分析图”的缩放和全屏查看。

  图5 锁分析图

7. 单击选择“原始数据”。
  单击不同线程名称可以查看线程的事件信息，如图6所示。 图6 原始数据
