-
- All Superinterfaces:
-
PlatformManagedObject
,ThreadMXBean
public interface ThreadMXBean extends ThreadMXBean
针对Java虚拟机线程系统的平台特定管理界面。此平台扩展仅适用于支持此扩展的线程实现。
- 从以下版本开始:
- 6u25
-
-
方法摘要
所有方法 接口方法 抽象方法 Modifier and Type 方法 描述 long
getThreadAllocatedBytes(long id)
返回指定ID的线程在堆内存中分配的内存总量(以字节为单位)的近似值。long[]
getThreadAllocatedBytes(long[] ids)
返回在ID为输入数组ids
每个线程的堆内存中分配的内存总量(以字节为单位)的ids
。long[]
getThreadCpuTime(long[] ids)
返回ID为输入数组ids
每个线程的总CPU时间,ids
为纳秒。long[]
getThreadUserTime(long[] ids)
返回输入阵列中的ID为ids
每个线程的CPU时间以纳秒的速度在用户模式下执行。boolean
isThreadAllocatedMemoryEnabled()
测试是否启用了线程内存分配测量。boolean
isThreadAllocatedMemorySupported()
测试Java虚拟机实现是否支持线程内存分配测量。void
setThreadAllocatedMemoryEnabled(boolean enable)
启用或禁用线程内存分配测量。-
Methods inherited from interface java.lang.management.PlatformManagedObject
getObjectName
-
Methods inherited from interface java.lang.management.ThreadMXBean
dumpAllThreads, findDeadlockedThreads, findMonitorDeadlockedThreads, getAllThreadIds, getCurrentThreadCpuTime, getCurrentThreadUserTime, getDaemonThreadCount, getPeakThreadCount, getThreadCount, getThreadCpuTime, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadInfo, getThreadUserTime, getTotalStartedThreadCount, isCurrentThreadCpuTimeSupported, isObjectMonitorUsageSupported, isSynchronizerUsageSupported, isThreadContentionMonitoringEnabled, isThreadContentionMonitoringSupported, isThreadCpuTimeEnabled, isThreadCpuTimeSupported, resetPeakThreadCount, setThreadContentionMonitoringEnabled, setThreadCpuTimeEnabled
-
-
-
-
方法详细信息
-
getThreadCpuTime
long[] getThreadCpuTime(long[] ids)
返回ID为输入数组ids
每个线程的总CPU时间,ids
为纳秒。 返回的值为纳秒精度,但不一定是纳秒精度。该方法相当于为输入数组
ids
中的每个线程ID调用ThreadMXBean.getThreadCpuTime(long)
方法,并在返回的数组的相应元素中设置返回值。- 参数
-
ids
- 一个线程ID数组。 - 结果
-
长数值的数组,每个都是ID的输入数组的对应元素中所使用的线程的CPU时间量,如果指定的ID的线程存在,线程是活的,CPU时间测量启用;
否则为
-1
。 - 异常
-
NullPointerException
- 如果ids
是null
-
IllegalArgumentException
- 如果输入阵列ids
中的任何元素是<=
0
。 -
UnsupportedOperationException
- 如果Java虚拟机实现不支持CPU时间测量。 - 另请参见:
-
ThreadMXBean.getThreadCpuTime(long)
,getThreadUserTime(long[])
,ThreadMXBean.isThreadCpuTimeSupported()
,ThreadMXBean.isThreadCpuTimeEnabled()
,ThreadMXBean.setThreadCpuTimeEnabled(boolean)
-
getThreadUserTime
long[] getThreadUserTime(long[] ids)
返回输入阵列中的ID为ids
每个线程的CPU时间,以纳秒为单位在用户模式下执行。 返回的值为纳秒精度,但不一定是纳秒精度。该方法相当于为输入数组
ids
中的每个线程ID调用ThreadMXBean.getThreadUserTime(long)
方法,并在返回的数组的相应元素中设置返回的值。- 参数
-
ids
- 一个线程ID数组。 - 结果
-
长数值的数组,其中每一个是用户模式CPU时间,其ID在ID的输入数组的相应元素中所使用的线程,如果指定的ID的线程存在,该线程是活的,并且启用CPU时间测量;
-1
否则。 - 异常
-
NullPointerException
- 如果ids
是null
-
IllegalArgumentException
- 如果输入数组ids
中的任何元素是<=
0
。 -
UnsupportedOperationException
- 如果Java虚拟机实现不支持CPU时间测量。 - 另请参见:
-
ThreadMXBean.getThreadUserTime(long)
,getThreadCpuTime(long[])
,ThreadMXBean.isThreadCpuTimeSupported()
,ThreadMXBean.isThreadCpuTimeEnabled()
,ThreadMXBean.setThreadCpuTimeEnabled(boolean)
-
getThreadAllocatedBytes
long getThreadAllocatedBytes(long id)
返回指定ID的线程在堆内存中分配的内存总量(以字节为单位)的近似值。 返回的值是近似值,因为一些Java虚拟机实现可能使用对象分配机制,导致在分配对象的时间与其大小记录的时间之间的延迟。如果指定ID的线程不存在或不存在,则此方法返回
-1
。 如果线程内存分配测量被禁用,此方法返回-1
。 如果一个线程已经启动并且尚未死亡,那么线程是活着的。如果在线程启动后启用线程内存分配测量,则Java虚拟机实现可以选择任何时间,直到并包括启用该功能的时间为线程内存分配测量开始的时间。
- 参数
-
id
- 线程的线程ID - 结果
-
如果指定的ID的线程存在,该线程存在,并且线程存储器分配测量被使能,则对于指定ID的线程的堆内存中的分配的总内存的总内存的近似值(以字节为单位)
否则为
-1
。 - 异常
-
IllegalArgumentException
- 如果是id
<=
0
。 -
UnsupportedOperationException
- 如果Java虚拟机实现不支持线程内存分配测量。 - 另请参见:
-
isThreadAllocatedMemorySupported()
,isThreadAllocatedMemoryEnabled()
,setThreadAllocatedMemoryEnabled(boolean)
-
getThreadAllocatedBytes
long[] getThreadAllocatedBytes(long[] ids)
返回在ID为输入数组ids
每个线程的堆内存中分配的内存总量(以字节为单位)的ids
。 返回的值是近似值,因为一些Java虚拟机实现可能使用对象分配机制,导致在分配对象的时间与其大小记录的时间之间的延迟。该方法相当于为输入数组
ids
中的每个线程ID调用getThreadAllocatedBytes(long)
方法,并在返回的数组的相应元素中设置返回值。- 参数
-
ids
- 一个线程ID数组。 - 结果
- 长数值的数组,其中的每一个都是对于ID在ID的输入数组的相应元素中的线程的堆存储器中分配的总内存(以字节为单位)的近似值。
- 异常
-
NullPointerException
- 如果ids
是null
-
IllegalArgumentException
- 如果输入阵列中的任何元素ids
是<=
0
。 -
UnsupportedOperationException
- 如果Java虚拟机实现不支持线程内存分配测量。 - 另请参见:
-
getThreadAllocatedBytes(long)
,isThreadAllocatedMemorySupported()
,isThreadAllocatedMemoryEnabled()
,setThreadAllocatedMemoryEnabled(boolean)
-
isThreadAllocatedMemorySupported
boolean isThreadAllocatedMemorySupported()
测试Java虚拟机实现是否支持线程内存分配测量。- 结果
-
true
如果Java虚拟机实现支持线程内存分配测量;false
否则。
-
isThreadAllocatedMemoryEnabled
boolean isThreadAllocatedMemoryEnabled()
测试是否启用了线程内存分配测量。- 结果
-
true
如果线程内存分配测量被使能; 否则为false
。 - 异常
-
UnsupportedOperationException
- 如果Java虚拟机不支持线程内存分配测量。 - 另请参见:
-
isThreadAllocatedMemorySupported()
-
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable)
启用或禁用线程内存分配测量。 默认值取决于平台。- 参数
-
enable
-true
启用;false
禁用。 - 异常
-
UnsupportedOperationException
- 如果Java虚拟机不支持线程内存分配测量。 -
SecurityException
- 如果安全管理器存在并且调用者没有ManagementPermission(“控制”)。 - 另请参见:
-
isThreadAllocatedMemorySupported()
-
-