![]() 上一页 |
使用线程选项卡可以监视线程活动。此选项卡包含一个绘制应用程序随时间推移的活动线程使用情况的图形、一个由该应用程序使用的所有活动线程的表以及选定线程的堆栈跟踪。
活动线程图
活动线程图显示 Java 应用程序随时间推移启动的线程数。默认情况下,图形中显示以下属性:
高峰活动线程计数
活动线程总计数
守护程序活动线程计数
有关添加或删除图形属性的信息,请参阅使用属性。有关使用图形的信息,请参阅使用图形。
活动线程
活动线程面板包含一个表,其中列出 Java 应用程序所启动活动线程的信息。默认情况下,该表包含以下列:
线程名称:线程的名称。
线程状态:线程的状态。线程可以是以下状态之一:NEW
、RUNNABLE
、BLOCKED
、WAITING
、TIMED_WAITING
或 TERMINATED
。
受阻计数:线程处于 BLOCKED
状态的次数。
CPU 总体占用率:线程所使用 CPU 资源占总 CPU 资源的百分比。默认情况下不提取此值。要启用它,请在表上方选择 CPU 概要分析。
死锁:线程是否已死锁。默认情况下不提取此值。要启用它,请在表上方选择死锁检测。
已分配的字节:已分配给线程的字节数。默认情况下不提取此值。要启用它,请在表上方选择分配。
实时监视最后三个值会消耗大量系统资源。这就是默认情况下禁用它们的原因。使用表上方相应的复选框,对这些值启用监视。
要筛选表中的线程,请选择筛选列 (通常是线程名称) 并在表上方的文本字段中指定筛选器字符串。
要配置表外观,请单击活动线程面板右上角的表设置按钮,然后选择要显示或隐藏的列。对于各列,您可以设置最小宽度、比例和初始排序顺序。除了默认列,您还可以添加以下列:
受阻时间:线程处于 BLOCKED
状态的累积时间 (毫秒)。
锁名称:此线程尝试访问的锁定对象,或此线程为当前线程时调用 wait()
的对象。
锁持有者 ID:锁定此线程尝试访问的对象的线程的标识符。
锁持有者名称:锁定此线程尝试访问的对象的线程的名称。
本地:线程当前是否正使用 Java Native Interface (JNI) 执行本地代码。
已挂起:线程是否已挂起。
线程 ID:线程的标识符。
等待的计数:线程处于 WAITING
或 TIMED_WAITING
状态的次数。
等待时间:线程处于 WAITING
或 TIMED_WAITING
状态的累积时间 (毫秒)。
选定线程的堆栈跟踪
在活动线程表中选择线程后,其整个堆栈跟踪将显示在下面的选定线程的堆栈跟踪面板中。堆栈跟踪包含所有方法 (一直到当前执行的方法) 的调用路径。它非常有用,例如,当您需要确定导致死锁或代码执行过程中意外中断的方法时。
您可以使用 Ctrl 键在活动线程表中选择多个线程来显示多个堆栈跟踪。