Spec-Zone.ru › OpenJDK 25

Интерфейс 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)
Включает или отключает измерение выделения памяти потоками.

Методы, объявленные в интерфейсе PlatformManagedObject

getObjectName

Методы, объявленные в интерфейсе 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)

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 не поддерживает измерение выделения памяти потоками.
См. также:
  • isThreadAllocatedMemorySupported()

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, 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/25/docs/api/jdk.management/com/sun/management/ThreadMXBean.html

Spec-Zone.ru

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