public class ThreadInfo extends Object
ThreadInfo contains the information
about a thread including:
Object.wait method,
orLockSupport.park call.thread contention monitoring
was enabled. Some Java virtual machine implementation
may not support this. The
ThreadMXBean.isThreadContentionMonitoringSupported()
method can be used to determine if a Java virtual machine
supports this.This thread information class is designed for use in monitoring of the system, not for synchronization control.
ThreadInfo is mapped to a CompositeData
with attributes as specified in
the from method.ThreadMXBean.getThreadInfo(long),
ThreadMXBean.dumpAllThreads(boolean, boolean)| Modifier and Type | Method and Description |
|---|---|
static ThreadInfo |
from(CompositeData cd)
Returns a
ThreadInfo object represented by the
given CompositeData. |
long |
getBlockedCount()
Returns the total number of times that
the thread associated with this
ThreadInfo
blocked to enter or reenter a monitor. |
long |
getBlockedTime()
Returns the approximate accumulated elapsed time (in milliseconds)
that the thread associated with this
ThreadInfo
has blocked to enter or reenter a monitor
since thread contention monitoring is enabled. |
MonitorInfo[] |
getLockedMonitors()
Returns an array of
MonitorInfo objects, each of which
represents an object monitor currently locked by the thread
associated with this ThreadInfo. |
LockInfo[] |
getLockedSynchronizers()
Returns an array of
LockInfo objects, each of which
represents an ownable
synchronizer currently locked by the thread associated with
this ThreadInfo. |
LockInfo |
getLockInfo()
Returns the
LockInfo of an object for which
the thread associated with this ThreadInfo
is blocked waiting. |
String |
getLockName()
Returns the
string representation
of an object for which the thread associated with this
ThreadInfo is blocked waiting. |
long |
getLockOwnerId()
Returns the ID of the thread which owns the object
for which the thread associated with this
ThreadInfo
is blocked waiting. |
String |
getLockOwnerName()
Returns the name of the thread which owns the object
for which the thread associated with this
ThreadInfo
is blocked waiting. |
int |
getPriority()
Returns the thread priority of the
thread associated with this
ThreadInfo. |
StackTraceElement[] |
getStackTrace()
Returns the stack trace of the thread
associated with this
ThreadInfo. |
long |
getThreadId()
Returns the ID of the thread associated with this
ThreadInfo. |
String |
getThreadName()
Returns the name of the thread associated with this
ThreadInfo. |
Thread.State |
getThreadState()
Returns the state of the thread associated with this
ThreadInfo. |
long |
getWaitedCount()
Returns the total number of times that
the thread associated with this
ThreadInfo
waited for notification. |
long |
getWaitedTime()
Returns the approximate accumulated elapsed time (in milliseconds)
that the thread associated with this
ThreadInfo
has waited for notification
since thread contention monitoring is enabled. |
boolean |
isDaemon()
Tests if the thread associated with this
ThreadInfo is
a daemon thread. |
boolean |
isInNative()
Tests if the thread associated with this
ThreadInfo
is executing native code via the Java Native Interface (JNI). |
boolean |
isSuspended()
Tests if the thread associated with this
ThreadInfo
is suspended. |
String |
toString()
Returns a string representation of this thread info.
|
public long getThreadId()
ThreadInfo.public String getThreadName()
ThreadInfo.public Thread.State getThreadState()
ThreadInfo.Thread.State of the associated thread.public long getBlockedTime()
ThreadInfo
has blocked to enter or reenter a monitor
since thread contention monitoring is enabled.
I.e. the total accumulated time the thread has been in the
BLOCKED state since thread
contention monitoring was last enabled.
This method returns -1 if thread contention monitoring
is disabled.
The Java virtual machine may measure the time with a high resolution timer. This statistic is reset when the thread contention monitoring is reenabled.
BLOCKED state;
-1 if thread contention monitoring is disabled.UnsupportedOperationException - if the Java
virtual machine does not support this operation.ThreadMXBean.isThreadContentionMonitoringSupported(),
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)public long getBlockedCount()
ThreadInfo
blocked to enter or reenter a monitor.
I.e. the number of times a thread has been in the
BLOCKED state.BLOCKED state.public long getWaitedTime()
ThreadInfo
has waited for notification
since thread contention monitoring is enabled.
I.e. the total accumulated time the thread has been in the
WAITING
or TIMED_WAITING state
since thread contention monitoring is enabled.
This method returns -1 if thread contention monitoring
is disabled.
The Java virtual machine may measure the time with a high resolution timer. This statistic is reset when the thread contention monitoring is reenabled.
WAITING or
TIMED_WAITING state;
-1 if thread contention monitoring is disabled.UnsupportedOperationException - if the Java
virtual machine does not support this operation.ThreadMXBean.isThreadContentionMonitoringSupported(),
ThreadMXBean.setThreadContentionMonitoringEnabled(boolean)public long getWaitedCount()
ThreadInfo
waited for notification.
I.e. the number of times that a thread has been
in the WAITING
or TIMED_WAITING state.WAITING or TIMED_WAITING state.public LockInfo getLockInfo()
LockInfo of an object for which
the thread associated with this ThreadInfo
is blocked waiting.
A thread can be blocked waiting for one of the following:
BLOCKED
state waiting to enter the synchronized statement
or method.
WAITING
or TIMED_WAITING state
due to a call to the Object.wait method.
WAITING
or TIMED_WAITING state
due to a call to the
LockSupport.park method. The synchronization object
is the object returned from
LockSupport.getBlocker method. Typically it is an
ownable synchronizer
or a Condition.This method returns null if the thread is not in any of
the above conditions.
LockInfo of an object for which the thread
is blocked waiting if any; null otherwise.public String getLockName()
string representation
of an object for which the thread associated with this
ThreadInfo is blocked waiting.
This method is equivalent to calling:
getLockInfo().toString()
This method will return null if this thread is not blocked
waiting for any object or if the object is not owned by any thread.
null otherwise.getLockInfo()public long getLockOwnerId()
ThreadInfo
is blocked waiting.
This method will return -1 if this thread is not blocked
waiting for any object or if the object is not owned by any thread.-1 if this thread is not blocked
or if the object is not owned by any thread.getLockInfo()public String getLockOwnerName()
ThreadInfo
is blocked waiting.
This method will return null if this thread is not blocked
waiting for any object or if the object is not owned by any thread.null if this thread is not blocked
or if the object is not owned by any thread.getLockInfo()public StackTraceElement[] getStackTrace()
ThreadInfo.
If no stack trace was requested for this thread info, this method
will return a zero-length array.
If the returned array is of non-zero length then the first element of
the array represents the top of the stack, which is the most recent
method invocation in the sequence. The last element of the array
represents the bottom of the stack, which is the least recent method
invocation in the sequence.
Some Java virtual machines may, under some circumstances, omit one
or more stack frames from the stack trace. In the extreme case,
a virtual machine that has no stack trace information concerning
the thread associated with this ThreadInfo
is permitted to return a zero-length array from this method.
StackTraceElement objects of the thread.public boolean isSuspended()
ThreadInfo
is suspended. This method returns true if
Thread.suspend() has been called.true if the thread is suspended;
false otherwise.public boolean isInNative()
ThreadInfo
is executing native code via the Java Native Interface (JNI).
The JNI native code does not include
the virtual machine support code or the compiled native
code generated by the virtual machine.true if the thread is executing native code;
false otherwise.public boolean isDaemon()
ThreadInfo is
a daemon thread.true if the thread is a daemon thread,
false otherwise.Thread.isDaemon()public int getPriority()
ThreadInfo.ThreadInfo.public String toString()
public static ThreadInfo from(CompositeData cd)
ThreadInfo object represented by the
given CompositeData.
The given CompositeData must contain the following attributes
unless otherwise specified below:
Attribute Name Type threadId java.lang.LongthreadName java.lang.StringthreadState java.lang.Stringsuspended java.lang.BooleaninNative java.lang.BooleanblockedCount java.lang.LongblockedTime java.lang.LongwaitedCount java.lang.LongwaitedTime java.lang.LonglockInfo javax.management.openmbean.CompositeData- the mapped type forLockInfoas specified in theLockInfo.from(javax.management.openmbean.CompositeData)method.If
cddoes not contain this attribute, theLockInfoobject will be constructed from the value of thelockNameattribute.lockName java.lang.StringlockOwnerId java.lang.LonglockOwnerName java.lang.StringstackTrace javax.management.openmbean.CompositeData[]Each element is a
CompositeDatarepresenting StackTraceElement containing the following attributes:
Attribute Name Type className java.lang.StringmethodName java.lang.StringfileName java.lang.StringlineNumber java.lang.IntegernativeMethod java.lang.BooleanlockedMonitors javax.management.openmbean.CompositeData[]whose element type is the mapped type forMonitorInfoas specified in theMonitor.frommethod.If
cddoes 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 forLockInfoas specified in theLockInfo.from(javax.management.openmbean.CompositeData)method.If
cddoes not contain this attribute, this attribute will be set to an empty array.daemon java.lang.Booleanpriority java.lang.Integer
cd - CompositeData representing a ThreadInfoThreadInfo object represented
by cd if cd is not null;
null otherwise.IllegalArgumentException - if cd does not
represent a ThreadInfo with the attributes described
above.public MonitorInfo[] getLockedMonitors()
MonitorInfo objects, each of which
represents an object monitor currently locked by the thread
associated with this ThreadInfo.
If no locked monitor was requested for this thread info or
no monitor is locked by the thread, this method
will return a zero-length array.MonitorInfo objects representing
the object monitors locked by the thread.public LockInfo[] getLockedSynchronizers()
LockInfo objects, each of which
represents an ownable
synchronizer currently locked by the thread associated with
this ThreadInfo. If no locked synchronizer was
requested for this thread info or no synchronizer is locked by
the thread, this method will return a zero-length array.LockInfo objects representing
the ownable synchronizers locked by the thread. Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2016, Oracle and/or its affiliates. All rights reserved.
DRAFT 9-internal+0-2016-01-26-133437.ivan.openjdk9onspinwait