所有类


java.lang.management
类 ThreadInfo

java.lang.Object
  继承者 java.lang.management.ThreadInfo

public class ThreadInfo
   
   
   
   
   
extends Object

线程信息。ThreadInfo 包含关于线程的信息,包括:

常规线程信息

  • 线程 ID。
  • 线程名称。

执行信息

  • 线程状态。
  • 线程在其上阻塞的对象等待进入同步块或等待在 Object.wait 调用中被通知。
  • 拥有阻塞线程对象的线程的 ID。
  • 线程的堆栈跟踪。

同步统计数据

  • 由于同步或等待通知而阻塞线程的次数。
  • 自从启动线程争用监视以来,由于同步或等待通知而阻塞线程的累积时间。某些 Java 虚拟机实现可能不支持此功能。ThreadMXBean.isThreadContentionMonitoringSupported() 方法可用于确定 Java 虚拟机是否支持此功能。

此线程信息类设计用于监视系统,不用于同步控制。

MXBean 映射

ThreadInfo 映射到一个具有 from 方法中指定属性的 CompositeData

从以下版本开始:
1.5
另请参见:
ThreadMXBean.isThreadContentionMonitoringSupported()

方法摘要
static ThreadInfofrom(CompositeData cd)
          返回由给定 CompositeData 表示的 ThreadInfo 对象。
 longgetBlockedCount()
          返回与此 ThreadInfo 相关的被阻塞的线程进入或重新进入监视器的总次数。
 longgetBlockedTime()
          返回自从启用线程争用监视以来,与此 ThreadInfo 相关的线程被阻塞进入或重新进入监视器的近似累积时间(以毫秒为单位)。
 StringgetLockName()
          返回监视器锁定的字符串表示形式,与此 ThreadInfo 相关的线程被锁定进入或正等待通过 Object.wait 方法得到通知。
 longgetLockOwnerId()
          返回线程的 ID,此线程保持对象的监视器锁定,该对象上与此 ThreadInfo 相关的线程被阻塞。
 StringgetLockOwnerName()
          返回线程的名称,此线程保持对象的监视器锁定,该对象上与此 ThreadInfo 相关的线程被阻塞。
 StackTraceElement[]getStackTrace()
          返回与此 ThreadInfo 相关的线程的堆栈跟踪。
 longgetThreadId()
          返回与此 ThreadInfo 相关的线程的 ID。
 StringgetThreadName()
          返回与此 ThreadInfo 相关的线程的名称。
 Thread.StategetThreadState()
          返回与此 ThreadInfo 相关的线程的状态。
 longgetWaitedCount()
          返回与此 ThreadInfo 相关的线程等待通知的总次数。
 longgetWaitedTime()
          返回自从启用线程争用监视以来,与此 ThreadInfo 相关的线程等待通知的近似累积时间(以毫秒为单位)。
 booleanisInNative()
          测试与此 ThreadInfo 相关的线程是否通过 Java 本机接口 (JNI) 执行本机代码。
 booleanisSuspended()
          测试与此 ThreadInfo 相关的线程是否被挂起。
 StringtoString()
          返回此线程信息的字符串表示形式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

方法详细信息

getThreadId

public long getThreadId()
返回与此 ThreadInfo 相关的线程的 ID。

返回:
相关线程的 ID。

getThreadName

public String getThreadName()
返回与此 ThreadInfo 相关的线程的名称。

返回:
相关线程的名称。

getThreadState

public Thread.State getThreadState()
返回与此 ThreadInfo 相关的线程的状态。

返回:
相关线程的 Thread.State

getBlockedTime

public long getBlockedTime()
返回自从启用线程争用监视以来,与此 ThreadInfo 相关的线程被阻塞进入或重新进入监视器的近似累积时间(以毫秒为单位)。即自从上次启用线程争用监视以来线程处于 BLOCKED 状态的总累积时间。如果线程争用监视被禁用,此方法将返回 -1

Java 虚拟机可能会使用高精度计时器测量时间。当重新启用线程争用监视时,将重置这个统计数据。

返回:
线程进入 BLOCKED 状态的近似累积时间(以毫秒为单位);如果禁用了线程争用监视,则返回 -1
抛出:
UnsupportedOperationException - 如果 Java 虚拟机不支持此操作。
另请参见:
ThreadMXBean.isThreadContentionMonitoringSupported(), ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)

getBlockedCount

public long getBlockedCount()
返回与此 ThreadInfo 相关的被阻塞的线程进入或重新进入监视器的总次数。即线程为 BLOCKED 状态的次数。

返回:
线程进入 BLOCKED 状态的总次数。

getWaitedTime

public long getWaitedTime()
返回自从启用线程争用监视以来,与此 ThreadInfo 相关的线程等待通知的近似累积时间(以毫秒为单位)。即自从启用线程争用监视以来,线程为 WAITINGTIMED_WAITING 状态的总累积时间。如果线程争用监视被禁用,此方法将返回 -1

Java 虚拟机可能会使用高精度计时器测量时间。当重新启用线程争用监视时,将重置这个统计数据。

返回:
线程为 WAITINGTIMED_WAITING 状态的近似累积时间(以毫秒为单位);如果禁用了线程争用监视,则返回 -1
抛出:
UnsupportedOperationException - 如果 Java 虚拟机不支持此操作。
另请参见:
ThreadMXBean.isThreadContentionMonitoringSupported(), ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)

getWaitedCount

public long getWaitedCount()
返回与此 ThreadInfo 相关的线程等待通知的总次数。即线程为 WAITINGTIMED_WAITING 状态的次数。

返回:
线程为 WAITINGTIMED_WAITING 状态的总次数。