Spec-Zone.ru › OpenJDK 21

Интерфейс ThreadMXBean

Все суперинтерфейсы:
PlatformManagedObject, ThreadMXBean
public interface ThreadMXBean extends ThreadMXBean
Платформенно-специфический интерфейс управления системой потоков виртуальной машины Java.

Это расширение платформы доступно только реализации потока, поддерживающей данное расширение.

С:
6u25

Краткое описание методов

Модификатор и тип Метод Описание
default long getCurrentThreadAllocatedBytes()
Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для текущего потока.
long getThreadAllocatedBytes(long id)
Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для потока с указанным идентификатором.
long[] getThreadAllocatedBytes(long[] ids)
Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для каждого потока, идентификаторы которых указаны в входном массиве ids.
long[] getThreadCpuTime(long[] ids)
Возвращает общее время работы процессора для каждого потока, идентификаторы которых указаны в входном массиве ids в наносекундах.
long[] getThreadUserTime(long[] ids)
Возвращает время работы процессора каждого потока, идентификаторы которых указаны в входном массиве ids, в режиме пользователя в наносекундах.
default long getTotalThreadAllocatedBytes()
Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти всеми потоками с момента запуска виртуальной машины Java.
boolean isThreadAllocatedMemoryEnabled()
Проверяет, включено ли измерение выделения памяти потоков.
boolean isThreadAllocatedMemorySupported()
Проверяет, поддерживает ли реализация виртуальной машины Java измерение выделения памяти потоков.
void setThreadAllocatedMemoryEnabled(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)
Возвращает общее время процессорного времени для каждого потока, идентификатор которого указан в входном массиве ids в наносекундах. Возвращаемые значения имеют точность в наносекундах, но не обязательно точны до наносекунд.

Этот метод эквивалентен вызову метода ThreadMXBean.getThreadCpuTime(long) для каждого идентификатора потока во входном массиве ids и установке возвращаемого значения в соответствующий элемент возвращаемого массива.

Параметры:
ids - массив идентификаторов потоков.
Возвращает:
массив значений типа long, где каждое значение представляет количество процессорного времени, использованное потоком, идентификатор которого находится в соответствующем элементе входного массива идентификаторов, если поток с указанным идентификатором является платформенным потоком, поток жив и измерение процессорного времени включено; -1 в противном случае.
Исключение:
NullPointerException - если ids равно null
IllegalArgumentException - если какой-либо элемент в входном массиве ids является <= 0.
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение времени процессорного времени.
См. также:
  • ThreadMXBean.getThreadCpuTime(long)
  • getThreadUserTime(long[])
  • ThreadMXBean.isThreadCpuTimeSupported()
  • ThreadMXBean.isThreadCpuTimeEnabled()
  • ThreadMXBean.setThreadCpuTimeEnabled(boolean)

getThreadUserTime

long[] getThreadUserTime(long[] ids)
Возвращает время процессорного времени, которое каждый поток, идентификатор которого указан в входном массиве ids выполнил в пользовательском режиме в наносекундах. Возвращаемые значения имеют точность в наносекундах, но не обязательно точны до наносекунд.

Этот метод эквивалентен вызову метода ThreadMXBean.getThreadUserTime(long) для каждого идентификатора потока во входном массиве ids и установке возвращаемого значения в соответствующий элемент возвращаемого массива.

Параметры:
ids - массив идентификаторов потоков.
Возвращает:
массив значений типа long, где каждое значение представляет количество процессорного времени в пользовательском режиме, использованное потоком, идентификатор которого находится в соответствующем элементе входного массива идентификаторов, если поток с указанным идентификатором является платформенным потоком, поток жив и измерение процессорного времени включено; -1 в противном случае.
Исключение:
NullPointerException - если ids равно null
IllegalArgumentException - если какой-либо элемент в входном массиве ids является <= 0.
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение времени процессорного времени.
См. также:
  • ThreadMXBean.getThreadUserTime(long)
  • getThreadCpuTime(long[])
  • ThreadMXBean.isThreadCpuTimeSupported()
  • ThreadMXBean.isThreadCpuTimeEnabled()
  • ThreadMXBean.setThreadCpuTimeEnabled(boolean)

getTotalThreadAllocatedBytes

default long getTotalThreadAllocatedBytes()
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче всеми потоками с момента запуска Java виртуальной машины. Возвращаемое значение является приблизительным, потому что некоторые реализации Java виртуальной машины могут использовать механизмы выделения объектов, которые приводят к задержке между моментом выделения объекта и моментом записи его размера.
Требования к реализации:
По умолчанию реализация выбрасывает UnsupportedOperationException если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоками, и в противном случае действует так, как будто измерение выделения памяти потоков отключено.
Возвращает:
приблизительное общее количество выделенной памяти в байтах в куче с момента запуска Java виртуальной машины, если измерение выделения памяти потоков включено; -1 в противном случае.
Исключение:
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоками.
С:
21
См. также:
  • isThreadAllocatedMemorySupported()
  • isThreadAllocatedMemoryEnabled()
  • setThreadAllocatedMemoryEnabled(boolean)

getCurrentThreadAllocatedBytes

default long getCurrentThreadAllocatedBytes()
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче для текущего потока. Возвращаемое значение является приблизительным, так как некоторые реализации Java виртуальной машины могут использовать механизмы выделения объектов, что приводит к задержке между моментом выделения объекта и моментом записи его размера.

Это метод удобства для локального управления и эквивалентен вызову:

   getThreadAllocatedBytes(Thread.currentThread().threadId());
 
Возвращает:
приблизительное общее количество выделенной памяти в байтах в куче для текущего потока, если измерение выделения памяти потоков включено; -1 в противном случае.
Исключение:
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоками.
С:
14
См. также:
  • isThreadAllocatedMemorySupported()
  • isThreadAllocatedMemoryEnabled()
  • setThreadAllocatedMemoryEnabled(boolean)

getThreadAllocatedBytes

long getThreadAllocatedBytes(long id)
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче для потока с указанным идентификатором. Возвращаемое значение является приблизительным, потому что некоторые реализации Java виртуальной машины могут использовать механизмы выделения объектов, что приводит к задержке между моментом выделения объекта и моментом записи его размера.

Если поток с указанным идентификатором является виртуальным потоком, не жив или не существует, этот метод возвращает -1. Если измерение выделения памяти потоков отключено, этот метод возвращает -1. Поток жив, если он был запущен и еще не завершен.

Если измерение выделения памяти потоков включено после запуска потока, реализация Java виртуальной машины может выбрать любой момент времени до включения функции, в том числе, как точку начала измерения выделения памяти потока.

Параметры:
id - идентификатор потока
Возвращает:
приблизительное общее количество выделенной памяти в байтах в куче для потока с указанным идентификатором, если поток с указанным идентификатором является платформенным потоком, поток жив и измерение выделения памяти потоков включено; -1 в противном случае.
Исключение:
IllegalArgumentException - если id <= 0.
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоками.
См. также:
  • isThreadAllocatedMemorySupported()
  • isThreadAllocatedMemoryEnabled()
  • setThreadAllocatedMemoryEnabled(boolean)

getThreadAllocatedBytes

long[] getThreadAllocatedBytes(long[] ids)
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче для каждого потока, идентификатор которого указан в входном массиве ids. Возвращаемые значения являются приблизительными, так как некоторые реализации Java виртуальной машины могут использовать механизмы выделения объектов, что приводит к задержке между моментом выделения объекта и моментом записи его размера.

Этот метод эквивалентен вызову метода getThreadAllocatedBytes(long) для каждого идентификатора потока во входном массиве ids и установке возвращаемого значения в соответствующий элемент возвращаемого массива.

Параметры:
ids - массив идентификаторов потоков.
Возвращает:
массив значений типа long, каждое из которых является приблизительным общим количеством памяти в байтах, выделенной в куче для потока, идентификатор которого находится в соответствующем элементе входного массива идентификаторов.
Исключение:
NullPointerException - если ids равно null
IllegalArgumentException - если какой-либо элемент в входном массиве ids является <= 0.
UnsupportedOperationException - если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоками.
См. также:
  • getThreadAllocatedBytes(long)
  • isThreadAllocatedMemorySupported()
  • isThreadAllocatedMemoryEnabled()
  • setThreadAllocatedMemoryEnabled(boolean)

Поддерживается ли измерение распределения памяти потоков

boolean isThreadAllocatedMemorySupported()
Проверяет, поддерживает ли реализация виртуальной машины Java измерение распределения памяти потоков.
Возвращает:
true если реализация виртуальной машины Java поддерживает измерение распределения памяти потоков; false в противном случае.

Включено ли измерение распределения памяти потоков

boolean isThreadAllocatedMemoryEnabled()
Проверяет, включено ли измерение распределения памяти потоков.
Возвращает:
true если измерение распределения памяти потоков включено; false в противном случае.
Выбрасывает:
UnsupportedOperationException - если реализация виртуальной машины Java не поддерживает измерение распределения памяти потоков.
См. также:
  • isThreadAllocatedMemorySupported()

setThreadAllocatedMemoryEnabled

void setThreadAllocatedMemoryEnabled(boolean enable)
Включает или отключает измерение распределения памяти потоков. По умолчанию зависит от платформы.
Параметры:
enable - true для включения; false для отключения.
Выбрасывает:
UnsupportedOperationException - если реализация виртуальной машины Java не поддерживает измерение распределения памяти потоков.
SecurityException - если существует менеджер безопасности, и у вызывающего объекта нет разрешения ManagementPermission("control").
См. также:
  • isThreadAllocatedMemorySupported()

© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/jdk.management/com/sun/management/ThreadMXBean.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API