public class ThreadInfo extends Object
Object.wait
方法通知,或 LockSupport.park
电话。 thread contention monitoring
被启用。 某些Java虚拟机实现可能不支持此功能。 ThreadMXBean.isThreadContentionMonitoringSupported()
方法可用于确定Java虚拟机是否支持此功能。 该线程信息类设计用于监视系统,不用于同步控制。
CompositeData
作为指定具有属性from
方法。
ThreadMXBean.getThreadInfo(long)
,
ThreadMXBean.dumpAllThreads(boolean, boolean)
Modifier and Type | Method and Description |
---|---|
static ThreadInfo |
from(CompositeData cd)
返回由给定的
CompositeData表示的
ThreadInfo对象。
|
long |
getBlockedCount()
返回与此
ThreadInfo关联的线程阻塞进入或重新输入监视器的总次数。
|
long |
getBlockedTime()
返回与此
ThreadInfo相关的线程被阻塞进入或因为线程争用监视被启用重新进入监视器的近似累积时间(以毫秒为单位)。
|
MonitorInfo[] |
getLockedMonitors()
返回一个 MonitorInfo 对象的数组,每个对象表示当前由与此ThreadInfo相关联的线程锁定的对象监视器。
|
LockInfo[] |
getLockedSynchronizers()
返回一个 LockInfo 对象的数组,每个对象代表一个ownable synchronizer,当前由与此ThreadInfo相关联的线程锁定。
|
LockInfo |
getLockInfo()
返回,与此相关联的
ThreadInfo的线程被阻塞等待对象的
LockInfo。
|
String |
getLockName()
返回
string representation ,与此相关联的
ThreadInfo的线程被阻塞等待的对象的。
|
long |
getLockOwnerId()
返回拥有与该
ThreadInfo相关联的线程被阻止等待的对象的线程的ID。
|
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 Native Interface(JNI)执行本机代码。
|
boolean |
isSuspended()
测试与此
ThreadInfo相关联的线程是否暂停。
|
String |
toString()
返回此线程信息的字符串表示形式。
|
public long getThreadId()
public String getThreadName()
public Thread.State getThreadState()
public long getBlockedTime()
BLOCKED
状态的总累计时间。
如果线程争用监控被禁用,此方法返回-1 。
Java虚拟机可以使用高分辨率定时器来测量时间。 当重新启用线程争用监控时,此统计信息将重置。
UnsupportedOperationException
- 如果Java虚拟机不支持此操作。
ThreadMXBean.isThreadContentionMonitoringSupported()
,
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
public long getBlockedCount()
public long getWaitedTime()
WAITING
或TIMED_WAITING
状态的总累计时间。
如果线程争用监控被禁用,此方法返回-1 。
Java虚拟机可以使用高分辨率定时器来测量时间。 当重新启用线程争用监控时,此统计信息将重置。
UnsupportedOperationException
- 如果Java虚拟机不支持此操作。
ThreadMXBean.isThreadContentionMonitoringSupported()
,
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)
public long getWaitedCount()
WAITING
或TIMED_WAITING
状态下的次数 。
public LockInfo getLockInfo()
BLOCKED
状态下等待输入synchronized语句或方法。 Object.wait
方法,线程处于WAITING
或TIMED_WAITING
状态。 WAITING
或TIMED_WAITING
状态由于调用LockSupport.park
方法。 同步对象是从LockSupport.getBlocker
方法返回的对象。 通常是ownable synchronizer或Condition
。 如果该线程不在任何的上述条件,此方法返回null。
public String getLockName()
string representation
,与此相关联的ThreadInfo的线程被阻塞等待的对象的。
这个方法相当于调用:
getLockInfo().toString()
如果此线程不阻塞等待任何对象或者对象不是任何线程所有,此方法将返回null 。
getLockInfo()
public long getLockOwnerId()
getLockInfo()
public String getLockOwnerName()
getLockInfo()
public StackTraceElement[] getStackTrace()
在某些情况下,某些Java虚拟机可能会从堆栈跟踪中省略一个或多个堆栈帧。 在极端情况下,没有关于与该ThreadInfo相关联的线程的堆栈跟踪信息的虚拟机被允许从该方法返回零长度数组。
public boolean isSuspended()
Thread.suspend()
被调用,此方法返回true 。
public boolean isInNative()
public static ThreadInfo from(CompositeData cd)
Attribute Name Type 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 - the mapped type for LockInfo
as specified in theLockInfo.from(javax.management.openmbean.CompositeData)
method.If cd does not contain this attribute, the LockInfo object will be constructed from the value of the lockName attribute.
lockName java.lang.String lockOwnerId java.lang.Long lockOwnerName java.lang.String stackTrace javax.management.openmbean.CompositeData[] Each element is a CompositeData representing StackTraceElement containing the following attributes:
Attribute Name Type 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[] whose element type is the mapped type for MonitorInfo
as specified in theMonitor.from
method.If cd does not contain this attribute, this attribute will be set to an empty array.
lockedSynchronizers javax.management.openmbean.CompositeData[] whose element type is the mapped type for LockInfo
as specified in theLockInfo.from(javax.management.openmbean.CompositeData)
method.If cd does not contain this attribute, this attribute will be set to an empty array.
cd
-
CompositeData代表
ThreadInfo
IllegalArgumentException
-如果
cd并不代表与上述属性的
ThreadInfo。
public MonitorInfo[] getLockedMonitors()
MonitorInfo
对象的数组,每个对象代表当前由与此ThreadInfo相关联的线程锁定的对象监视器。
如果没有为此线程信息请求锁定的监视器,或者线程未锁定监视器,则此方法将返回零长度的数组。