- 所有父级接口:
PlatformManagedObject,ThreadMXBean
Java 虚拟机线程系统的特定于平台的管理接口。
此平台扩展仅适用于支持此扩展的线程实现。
- 自从:
- 6u25
-
方法总结
修饰符和类型方法描述default long返回在堆内存中为当前线程分配的内存总量的近似值(以字节为单位)。longgetThreadAllocatedBytes(long id) 返回在堆内存中为具有指定 ID 的线程分配的内存总量的近似值(以字节为单位)。long[]getThreadAllocatedBytes(long[] ids) 返回在堆内存中为其 ID 在输入数组ids中的每个线程分配的内存总量的近似值(以字节为单位)。long[]getThreadCpuTime(long[] ids) 返回 ID 在输入数组ids中的每个线程的总 CPU 时间(以纳秒为单位)。long[]getThreadUserTime(long[] ids) 返回 ID 在输入数组ids中的每个线程在用户模式下执行的 CPU 时间(以纳秒为单位)。boolean测试线程内存分配测量是否启用。boolean测试 Java 虚拟机实现是否支持线程内存分配测量。voidsetThreadAllocatedMemoryEnabled(boolean enable) 启用或禁用线程内存分配测量。在接口 java.lang.management.PlatformManagedObject 中声明的方法
getObjectName在接口 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
-
方法详情
-
getThreadCpuTime
long[] getThreadCpuTime(long[] ids) 返回 ID 在输入数组ids中的每个线程的总 CPU 时间(以纳秒为单位)。返回值具有纳秒精度,但不一定是纳秒精度。该方法相当于为输入数组
ids中的每个线程ID调用ThreadMXBean.getThreadCpuTime(long)方法,并在返回数组的对应元素中设置返回值。- 参数:
ids- 线程 ID 数组。- 返回:
-
一个 long 值数组,每个值是 ID 在输入 ID 数组的相应元素中的线程已使用的 CPU 时间量,如果指定 ID 的线程存在,则该线程处于活动状态,并且 CPU 时间启用测量;
-1否则。 - 抛出:
NullPointerException- 如果ids是nullIllegalArgumentException- 如果输入数组ids中的任何元素是<=0。UnsupportedOperationException- 如果 Java 虚拟机实现不支持 CPU 时间测量。- 参见:
-
getThreadUserTime
long[] getThreadUserTime(long[] ids) 返回 ID 在输入数组ids中的每个线程在用户模式下执行的 CPU 时间(以纳秒为单位)。返回值具有纳秒精度,但不一定是纳秒精度。该方法相当于为输入数组
ids中的每个线程ID调用ThreadMXBean.getThreadUserTime(long)方法,并在返回数组的对应元素中设置返回值。- 参数:
ids- 线程 ID 数组。- 返回:
-
一个 long 值数组,每个值都是 ID 在输入 ID 数组的相应元素中的线程使用的用户模式 CPU 时间量,如果存在指定 ID 的线程,则该线程处于活动状态,并且启用 CPU 时间测量;
-1否则。 - 抛出:
NullPointerException- 如果ids是nullIllegalArgumentException- 如果输入数组ids中的任何元素是<=0。UnsupportedOperationException- 如果 Java 虚拟机实现不支持 CPU 时间测量。- 参见:
-
getCurrentThreadAllocatedBytes
default long getCurrentThreadAllocatedBytes()返回在堆内存中为当前线程分配的内存总量的近似值(以字节为单位)。返回值是一个近似值,因为某些 Java 虚拟机实现可能使用对象分配机制,这会导致分配对象的时间和记录其大小的时间之间存在延迟。这是本地管理使用的便捷方法,相当于调用:
getThreadAllocatedBytes(Thread.currentThread().threadId());- 返回:
-
如果启用了线程内存分配测量,则当前线程在堆内存中分配的总内存的近似值(以字节为单位);
-1否则。 - 抛出:
UnsupportedOperationException- 如果 Java 虚拟机实现不支持线程内存分配测量。- 自从:
- 14
- 参见:
-
getThreadAllocatedBytes
long getThreadAllocatedBytes(long id) 返回在堆内存中为具有指定 ID 的线程分配的内存总量的近似值(以字节为单位)。返回值是一个近似值,因为某些 Java 虚拟机实现可能使用对象分配机制,这会导致分配对象的时间和记录其大小的时间之间存在延迟。如果具有指定 ID 的线程是虚拟线程、不存在或不存在,则此方法返回
-1。如果禁用线程内存分配测量,则此方法返回-1。如果线程已启动且尚未终止,则该线程处于活动状态。如果在线程启动后启用线程内存分配测量,则 Java 虚拟机实现可以选择任何时间(包括启用该功能的时间)作为线程内存分配测量开始的时间点。
- 参数:
id- 线程的线程ID- 返回:
-
如果具有指定 ID 的线程存在、线程处于活动状态并且启用了线程内存分配测量,则为具有指定 ID 的线程在堆内存中分配的总内存的近似值(以字节为单位);
-1否则。 - 抛出:
IllegalArgumentException- 如果id<=0。UnsupportedOperationException- 如果 Java 虚拟机实现不支持线程内存分配测量。- 参见:
-
getThreadAllocatedBytes
long[] getThreadAllocatedBytes(long[] ids) 返回在堆内存中为其 ID 在输入数组ids中的每个线程分配的内存总量的近似值(以字节为单位)。返回的值是近似值,因为某些 Java 虚拟机实现可能使用对象分配机制,这会导致分配对象的时间和记录其大小的时间之间存在延迟。该方法相当于为输入数组
ids中的每个线程ID调用getThreadAllocatedBytes(long)方法,并在返回数组的对应元素中设置返回值。- 参数:
ids- 线程 ID 数组。- 返回:
- 一个 long 值数组,每个值都是在堆内存中为 ID 位于输入 ID 数组的相应元素中的线程分配的总内存的近似值(以字节为单位) 。
- 抛出:
NullPointerException- 如果ids是nullIllegalArgumentException- 如果输入数组ids中的任何元素是<=0。UnsupportedOperationException- 如果 Java 虚拟机实现不支持线程内存分配测量。- 参见:
-
isThreadAllocatedMemorySupported
boolean isThreadAllocatedMemorySupported()测试 Java 虚拟机实现是否支持线程内存分配测量。- 返回:
true如果Java虚拟机实现支持线程内存分配测量;false否则。
-
isThreadAllocatedMemoryEnabled
boolean isThreadAllocatedMemoryEnabled()测试线程内存分配测量是否启用。- 返回:
true如果启用了线程内存分配测量;false否则。- 抛出:
UnsupportedOperationException- 如果 Java 虚拟机不支持线程内存分配测量。- 参见:
-
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable) 启用或禁用线程内存分配测量。默认值取决于平台。- 参数:
enable-true启用;false禁用。- 抛出:
UnsupportedOperationException- 如果 Java 虚拟机不支持线程内存分配测量。SecurityException- 如果存在安全管理器并且调用者没有 ManagementPermission("control")。- 参见:
-