©
本文档使用
php.cn手册 发布
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
1 2 |
|
1 |
|
线程信息。ThreadInfo 包含有关线程的信息,包括:
Object.wait
方法的通知,或者LockSupport.park
调用而暂停。线程争用监视
开始,由于同步或等待通知而阻塞线程的累计时间。某些 Java 虚拟机实现可能不支持此功能。ThreadMXBean.isThreadContentionMonitoringSupported()
方法可用于确定 Java 虚拟机是否支持此功能。此线程信息类设计用于监视系统,不用于同步控制。
from
方法中指定属性的 CompositeData
。
ThreadMXBean.getThreadInfo(long)
,
ThreadMXBean.dumpAllThreads(boolean, boolean)
方法摘要 | |
---|---|
static ThreadInfo |
from(CompositeData cd)
返回由给定 CompositeData 表示的 ThreadInfo 对象。 |
long |
getBlockedCount()
返回与此 ThreadInfo 关联的线程被阻塞进入或重进入监视器的总次数。 |
long |
getBlockedTime()
返回自从启用线程争用监视以来,与此 ThreadInfo 关联的线程被阻塞进入或重进入监视器的近似累计时间(以毫秒为单位)。 |
MonitorInfo[] |
getLockedMonitors()
返回 MonitorInfo 对象数组,每个数组元素表示关联此 ThreadInfo 的线程当前锁定的对象监视器。 |
LockInfo[] |
getLockedSynchronizers()
返回 LockInfo 对象数组,每个数组元素表示关联此 ThreadInfo 的线程当前锁定的可拥有同步器。 |
LockInfo |
getLockInfo()
返回对象的 LockInfo,与此 ThreadInfo 关联的线程被阻塞并等待该对象。 |
String |
getLockName()
返回对象的 字符串表示形式 ,与此 ThreadInfo 关联的线程被锁定并等待该对象。 |
long |
getLockOwnerId()
返回拥有对象的线程的 ID,与此 ThreadInfo 关联的线程被阻塞并等待该对象。 |
String |
getLockOwnerName()
返回拥有对象的线程的名称,与此 ThreadInfo 关联的线程被阻塞并等待该对象。 |
StackTraceElement[] |
getStackTrace()
返回与此 ThreadInfo 关联的线程的堆栈跟踪。 |
long |
getThreadId()
返回与此 ThreadInfo 关联的线程的 ID。 |
String |
getThreadName()
返回与此 ThreadInfo 关联的线程的名称。 |
Thread.State |
getThreadState()
返回与此 ThreadInfo 关联的线程的状态。 |
long |
getWaitedCount()
返回与此 ThreadInfo 关联的线程等待通知的总次数。 |
long |
getWaitedTime()
返回自从启用线程争用监视以来,与此 ThreadInfo 关联的线程等待通知的近似累计时间(以毫秒为单位)。 |
boolean |
isInNative()
测试与此 ThreadInfo 关联的线程是否通过 Java 本机接口 (JNI) 执行本机代码。 |
boolean |
isSuspended()
测试与此 ThreadInfo 关联的线程是否被挂起。 |
String |
toString()
返回此线程信息的字符串表示形式。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
方法详细信息 |
---|
1 |
|
1 |
|
1 |
|
1 |
|
BLOCKED
状态的总累计时间。如果线程争用监视被禁用,此方法将返回 -1。
Java 虚拟机可能会使用高精度计时器测量时间。当重新启用线程争用监视时,将重置这个统计数据。
UnsupportedOperationException
- 如果 Java 虚拟机不支持此操作。ThreadMXBean.isThreadContentionMonitoringSupported()
,
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
1 |
|
BLOCKED
状态的次数。
1 |
|
WAITING
或 TIMED_WAITING
状态的总累计时间。如果线程争用监视被禁用,此方法将返回 -1。
Java 虚拟机可能会使用高精度计时器测量时间。当重新启用线程争用监视时,将重置这个统计数据。
UnsupportedOperationException
- 如果 Java 虚拟机不支持此操作。ThreadMXBean.isThreadContentionMonitoringSupported()
,
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
1 |
|
WAITING
或 TIMED_WAITING
状态的次数。
1 |
|
BLOCKED
状态,等待进入 synchronized 语句或方法。
Object.wait
方法,线程处于 WAITING
或 TIMED_WAITING
状态。
LockSupport.park
方法,线程处于 WAITING
或 TIMED_WAITING
状态。同步对象是从 LockSupport.getBlocker
方法返回的对象。通常,它是一个可拥有同步器或 Condition
。
如果线程不处于以上任何状态之一,那么此方法返回 null。
1 |
|
字符串表示形式
,与此 ThreadInfo 关联的线程被锁定并等待该对象。此方法等效于调用:
1
getLockInfo().toString()
如果此线程没有被阻塞并等待任何对象,或者没有任何线程拥有该对象,那么此方法将返回 null。
getLockInfo()
1 |
|
getLockInfo()
1 |
|
getLockInfo()
1 |
|
某些 Java 虚拟机在某些情况下可能会从堆栈跟踪中忽略一个或多个堆栈帧。在极端情况下,没有关于此 ThreadInfo 关联线程堆栈跟踪信息的虚拟机可以从此方法返回一个长度为 0 的数组。
1 |
|
Thread.suspend()
方法,此方法将返回 true。
1 |
|
1 |
|
Object
中的 toString
1 |
|
属性名称 类型 threadId java.lang.Long threadName java.lang.String threadState java.lang.String suspended java.lang.Boolean inNative java.lang.Boolean blockedCount java.lang.Long blockedTime java.lang.Long waitedCount java.lang.Long waitedTime java.lang.Long lockInfo javax.management.openmbean.CompositeData - MXBean 类型映射规则中指定的 LockInfo
的映射类型。如果 cd 不包含此属性,则将根据 lockName 属性的值构造 LockInfo 对象。
lockName java.lang.String lockOwnerId java.lang.Long lockOwnerName java.lang.String stackTrace javax.management.openmbean.CompositeData[] 每个元素都是表示 StackTraceElement 的 CompositeData,包含以下属性:
属性名称 类型 className java.lang.String methodName java.lang.String fileName java.lang.String lineNumber java.lang.Integer nativeMethod java.lang.Boolean lockedMonitors javax.management.openmbean.CompositeData[],其元素类型是 MonitorInfo
的映射类型,MonitorInfo 在Monitor.from
方法中指定。如果 cd 不包含此属性,那么此属性将被设置为空数组。
lockedSynchronizers javax.management.openmbean.CompositeData[],其元素是 LockInfo
的映射类型,LockInfo 在 MXBean 的类型映射规则中指定。如果 cd 不包含此属性,那么此属性将被设置为空数组。
cd
- 表示 ThreadInfo 的 CompositeData
IllegalArgumentException
- 如果 cd 不表示具有上述属性的 ThreadInfo。1 |
|
MonitorInfo
对象数组,每个数组元素表示关联此 ThreadInfo 的线程当前锁定的对象监视器。
如果没有为此线程信息请求任何锁定的监视器,或者线程没有锁定任何监视器,那么此方法返回长度为 0 的数组。
1 |
|
LockInfo
对象数组,每个数组元素表示关联此 ThreadInfo 的线程当前锁定的可拥有同步器。
如果没有为此线程信息请求任何锁定的同步器,或者线程没有锁定任何同步器,那么此方法返回长度为 0 的数组。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。