Module jdk.management

Interface ThreadMXBean

所有超级接口:
PlatformManagedObject, ThreadMXBean

public interface ThreadMXBean extends ThreadMXBean
Java虚拟机线程系统的特定于平台的管理接口。

此平台扩展仅适用于支持此扩展的线程实现。

自:
6u25
  • Method Details

    • getThreadCpuTime

      long[] getThreadCpuTime(long[] ids)
      返回输入数组ids中每个线程的总CPU时间(以纳秒为单位)。返回的值精确到纳秒,但不一定是纳秒精度。

      此方法等效于为输入数组ids中的每个线程ID调用ThreadMXBean.getThreadCpuTime(long)方法,并将返回的值设置为返回数组的相应元素。

      参数:
      ids - 线程ID数组。
      返回:
      一个长整型数组,每个值表示对应于输入ID数组的元素中的线程使用的CPU时间量,如果指定ID的线程是平台线程、线程处于活动状态且启用了CPU时间测量,则返回该值;否则返回-1
      抛出:
      NullPointerException - 如果idsnull
      IllegalArgumentException - 如果输入数组ids中的任何元素为<= 0
      UnsupportedOperationException - 如果Java虚拟机实现不支持CPU时间测量。
      参见:
    • getThreadUserTime

      long[] getThreadUserTime(long[] ids)
      返回输入数组ids中每个线程在用户模式下执行的CPU时间(以纳秒为单位)。返回的值精确到纳秒,但不一定是纳秒精度。

      此方法等效于为输入数组ids中的每个线程ID调用ThreadMXBean.getThreadUserTime(long)方法,并将返回的值设置为返回数组的相应元素。

      参数:
      ids - 线程ID数组。
      返回:
      一个长整型数组,每个值表示对应于输入ID数组的元素中的线程使用的用户模式CPU时间量,如果指定ID的线程是平台线程、线程处于活动状态且启用了CPU时间测量,则返回该值;否则返回-1
      抛出:
      NullPointerException - 如果idsnull
      IllegalArgumentException - 如果输入数组ids中的任何元素为<= 0
      UnsupportedOperationException - 如果Java虚拟机实现不支持CPU时间测量。
      参见:
    • getTotalThreadAllocatedBytes

      default long getTotalThreadAllocatedBytes()
      返回Java虚拟机启动以来所有线程在堆内存中分配的总内存量的近似值(以字节为单位)。返回的值是一个近似值,因为一些Java虚拟机实现可能使用对象分配机制,导致分配对象和记录其大小之间存在延迟。
      实现要求:
      如果Java虚拟机实现不支持线程内存分配测量,则默认实现会抛出UnsupportedOperationException,否则会像线程内存分配测量已禁用一样操作。
      返回:
      一个近似值,表示自Java虚拟机启动以来在堆内存中分配的总内存量(以字节为单位),如果启用了线程内存分配测量,则返回该值;否则返回-1
      抛出:
      UnsupportedOperationException - 如果Java虚拟机实现不支持线程内存分配测量。
      自:
      21
      参见:
    • 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)
      返回一个近似值,表示分配给输入数组ids中每个线程的堆内存中分配的总内存量(以字节为单位)。返回的值是近似值,因为一些Java虚拟机实现可能使用对象分配机制,导致分配对象和记录其大小之间存在延迟。

      此方法等同于为输入数组ids中的每个线程ID调用getThreadAllocatedBytes(long)方法,并将返回的值设置在返回数组的相应元素中。

      参数:
      ids - 一个线程ID数组。
      返回:
      一个长整型值数组,每个值是对应于输入ID数组中的线程的堆内存中分配的总内存的近似值(以字节为单位)。
      抛出:
      NullPointerException - 如果idsnull
      IllegalArgumentException - 如果输入数组ids中的任何元素为<= 0
      UnsupportedOperationException - 如果Java虚拟机实现不支持线程内存分配测量。
      参见:
    • isThreadAllocatedMemorySupported

      boolean isThreadAllocatedMemorySupported()
      测试Java虚拟机实现是否支持线程内存分配测量。
      返回:
      如果Java虚拟机实现支持线程内存分配测量,则返回true;否则返回false
    • isThreadAllocatedMemoryEnabled

      boolean isThreadAllocatedMemoryEnabled()
      测试线程内存分配测量是否已启用。
      返回:
      如果线程内存分配测量已启用,则返回true;否则返回false
      抛出:
      UnsupportedOperationException - 如果Java虚拟机不支持线程内存分配测量。
      参见:
    • setThreadAllocatedMemoryEnabled

      void setThreadAllocatedMemoryEnabled(boolean enable)
      启用或禁用线程内存分配测量。默认值取决于平台。
      参数:
      enable - true表示启用;false表示禁用。
      抛出:
      UnsupportedOperationException - 如果Java虚拟机不支持线程内存分配测量。
      SecurityException - 如果存在安全管理器且调用方没有ManagementPermission("control")。
      参见: