Interface ThreadMXBean
- All Superinterfaces:
PlatformManagedObject,ThreadMXBean
This platform extension is only available to a thread implementation that supports this extension.
- Since:
- 6u25
-
Method Summary
Modifier and TypeMethodDescriptiondefault longReturns an approximation of the total amount of memory, in bytes, allocated in heap memory for the current thread.longgetThreadAllocatedBytes(long id) Returns an approximation of the total amount of memory, in bytes, allocated in heap memory for the thread with the specified ID.long[]getThreadAllocatedBytes(long[] ids) Returns an approximation of the total amount of memory, in bytes, allocated in heap memory for each thread whose ID is in the input arrayids.long[]getThreadCpuTime(long[] ids) Returns the total CPU time for each thread whose ID is in the input arrayidsin nanoseconds.long[]getThreadUserTime(long[] ids) Returns the CPU time that each thread whose ID is in the input arrayidshas executed in user mode in nanoseconds.default longReturns an approximation of the total amount of memory, in bytes, allocated in heap memory by all threads since the Java virtual machine started.booleanTests if thread memory allocation measurement is enabled.booleanTests if the Java virtual machine implementation supports thread memory allocation measurement.voidsetThreadAllocatedMemoryEnabled(boolean enable) Enables or disables thread memory allocation measurement.Methods declared in interface java.lang.management.PlatformManagedObject
getObjectNameMethods declared in interface java.lang.management.ThreadMXBean
dumpAllThreads, dumpAllThreads, findDeadlockedThreads, findMonitorDeadlockedThreads, getAllThreadIds, getCurrentThreadCpuTime, getCurrentThreadUserTime, getDaemonThreadCount, getPeakThreadCount, getThreadCount, getThreadCpuTime, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadUserTime, getTotalStartedThreadCount, isCurrentThreadCpuTimeSupported, isObjectMonitorUsageSupported, isSynchronizerUsageSupported, isThreadContentionMonitoringEnabled, isThreadContentionMonitoringSupported, isThreadCpuTimeEnabled, isThreadCpuTimeSupported, resetPeakThreadCount, setThreadContentionMonitoringEnabled, setThreadCpuTimeEnabled
-
Method Details
-
getThreadCpuTime
long[] getThreadCpuTime(long[] ids) Returns the total CPU time for each thread whose ID is in the input arrayidsin nanoseconds. The returned values are of nanoseconds precision but not necessarily nanoseconds accuracy.This method is equivalent to calling the
ThreadMXBean.getThreadCpuTime(long)method for each thread ID in the input arrayidsand setting the returned value in the corresponding element of the returned array.- Parameters:
ids- an array of thread IDs.- Returns:
- an array of long values, each of which is the amount of CPU
time the thread whose ID is in the corresponding element of the input
array of IDs has used, if the thread of a specified ID is a platform
thread, the thread is alive, and CPU time measurement is enabled;
-1otherwise. - Throws:
NullPointerException- ifidsisnullIllegalArgumentException- if any element in the input arrayidsis<=0.UnsupportedOperationException- if the Java virtual machine implementation does not support CPU time measurement.- See Also:
-
getThreadUserTime
long[] getThreadUserTime(long[] ids) Returns the CPU time that each thread whose ID is in the input arrayidshas executed in user mode in nanoseconds. The returned values are of nanoseconds precision but not necessarily nanoseconds accuracy.This method is equivalent to calling the
ThreadMXBean.getThreadUserTime(long)method for each thread ID in the input arrayidsand setting the returned value in the corresponding element of the returned array.- Parameters:
ids- an array of thread IDs.- Returns:
- an array of long values, each of which is the amount of user
mode CPU time the thread whose ID is in the corresponding element of
the input array of IDs has used, if the thread of a specified ID is a
platform thread, the thread is alive, and CPU time measurement is enabled;
-1otherwise. - Throws:
NullPointerException- ifidsisnullIllegalArgumentException- if any element in the input arrayidsis<=0.UnsupportedOperationException- if the Java virtual machine implementation does not support CPU time measurement.- See Also:
-
getTotalThreadAllocatedBytes
default long getTotalThreadAllocatedBytes()Returns an approximation of the total amount of memory, in bytes, allocated in heap memory by all threads since the Java virtual machine started. The returned value is an approximation because some Java virtual machine implementations may use object allocation mechanisms that result in a delay between the time an object is allocated and the time its size is recorded.- Implementation Requirements:
- The default implementation throws
UnsupportedOperationExceptionif the Java virtual machine implementation does not support thread memory allocation measurement, and otherwise acts as though thread memory allocation measurement is disabled. - Returns:
- an approximation of the total memory allocated, in bytes, in
heap memory since the Java virtual machine was started,
if thread memory allocation measurement is enabled;
-1otherwise. - Throws:
UnsupportedOperationException- if the Java virtual machine implementation does not support thread memory allocation measurement.- Since:
- 21
- See Also:
-
getCurrentThreadAllocatedBytes
default long getCurrentThreadAllocatedBytes()Returns an approximation of the total amount of memory, in bytes, allocated in heap memory for the current thread. The returned value is an approximation because some Java virtual machine implementations may use object allocation mechanisms that result in a delay between the time an object is allocated and the time its size is recorded.This is a convenience method for local management use and is equivalent to calling:
getThreadAllocatedBytes(Thread.currentThread().threadId());- Returns:
- an approximation of the total memory allocated, in bytes, in
heap memory for the current thread
if thread memory allocation measurement is enabled;
-1otherwise. - Throws:
UnsupportedOperationException- if the Java virtual machine implementation does not support thread memory allocation measurement.- Since:
- 14
- See Also:
-
getThreadAllocatedBytes
long getThreadAllocatedBytes(long id) Returns an approximation of the total amount of memory, in bytes, allocated in heap memory for the thread with the specified ID. The returned value is an approximation because some Java virtual machine implementations may use object allocation mechanisms that result in a delay between the time an object is allocated and the time its size is recorded.If the thread with the specified ID is a virtual thread, is not alive, or does not exist, this method returns
-1. If thread memory allocation measurement is disabled, this method returns-1. A thread is alive if it has been started and has not yet terminated.If thread memory allocation measurement is enabled after the thread has started, the Java virtual machine implementation may choose any time up to and including the time that the capability is enabled as the point where thread memory allocation measurement starts.
- Parameters:
id- the thread ID of a thread- Returns:
- an approximation of the total memory allocated, in bytes, in
heap memory for the thread with the specified ID if the thread with the
specified ID is a platform thread, the thread is alive, and thread memory
allocation measurement is enabled;
-1otherwise. - Throws:
IllegalArgumentException- ifid<=0.UnsupportedOperationException- if the Java virtual machine implementation does not support thread memory allocation measurement.- See Also:
-
getThreadAllocatedBytes
long[] getThreadAllocatedBytes(long[] ids) Returns an approximation of the total amount of memory, in bytes, allocated in heap memory for each thread whose ID is in the input arrayids. The returned values are approximations because some Java virtual machine implementations may use object allocation mechanisms that result in a delay between the time an object is allocated and the time its size is recorded.This method is equivalent to calling the
getThreadAllocatedBytes(long)method for each thread ID in the input arrayidsand setting the returned value in the corresponding element of the returned array.- Parameters:
ids- an array of thread IDs.- Returns:
- an array of long values, each of which is an approximation of the total memory allocated, in bytes, in heap memory for the thread whose ID is in the corresponding element of the input array of IDs.
- Throws:
NullPointerException- ifidsisnullIllegalArgumentException- if any element in the input arrayidsis<=0.UnsupportedOperationException- if the Java virtual machine implementation does not support thread memory allocation measurement.- See Also:
-
isThreadAllocatedMemorySupported
boolean isThreadAllocatedMemorySupported()Tests if the Java virtual machine implementation supports thread memory allocation measurement.- Returns:
trueif the Java virtual machine implementation supports thread memory allocation measurement;falseotherwise.
-
isThreadAllocatedMemoryEnabled
boolean isThreadAllocatedMemoryEnabled()Tests if thread memory allocation measurement is enabled.- Returns:
trueif thread memory allocation measurement is enabled;falseotherwise.- Throws:
UnsupportedOperationException- if the Java virtual machine does not support thread memory allocation measurement.- See Also:
-
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable) Enables or disables thread memory allocation measurement. The default is platform dependent.- Parameters:
enable-trueto enable;falseto disable.- Throws:
UnsupportedOperationException- if the Java virtual machine does not support thread memory allocation measurement.SecurityException- if a security manager exists and the caller does not have ManagementPermission("control").- See Also:
-