Spec-Zone.ru › OpenJDK 27

Интерфейс 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
Модификатор и тип Метод Описание
ObjectName getObjectName()
Возвращает экземпляр ObjectName, представляющий имя объекта этого управляемого объекта платформы.

Методы, объявленные в интерфейсе 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
Модификатор и тип Метод Описание
ThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers)
Возвращает сведения обо всех работающих потоках платформы, включая трассировку стека и сведения о синхронизации.
default ThreadInfo[] dumpAllThreads(boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth)
Возвращает сведения обо всех работающих потоках платформы, включая трассировку стека с указанным максимальным числом элементов и сведения о синхронизации. Если maxDepth == 0, трассировка стека потока не будет выведена.
long[] findDeadlockedThreads()
Находит циклы потоков платформы, заблокированных в ожидании захвата объектных мониторов или синхронизаторов, которыми можно владеть.
long[] findMonitorDeadlockedThreads()
Находит циклы потоков платформы, заблокированных в ожидании захвата объектных мониторов.
long[] getAllThreadIds()
Возвращает идентификаторы всех работающих потоков платформы.
long getCurrentThreadCpuTime()
Возвращает общее время ЦП для текущего потока в наносекундах.
long getCurrentThreadUserTime()
Возвращает время ЦП в наносекундах, в течение которого текущий поток выполнялся в пользовательском режиме.
int getDaemonThreadCount()
Возвращает текущее количество работающих потоков платформы, являющихся потоками-демонами.
int getPeakThreadCount()
Возвращает пиковое количество работающих потоков платформы с момента запуска виртуальной машины Java или сброса пикового значения.
int getThreadCount()
Возвращает текущее количество работающих потоков платформы, включая потоки-демоны и обычные потоки.
long getThreadCpuTime(long id)
Возвращает общее время ЦП в наносекундах для потока с указанным идентификатором.
ThreadInfo getThreadInfo(long id)
Возвращает сведения о потоке с указанным id без трассировки стека.
ThreadInfo[] getThreadInfo(long[] ids)
Возвращает сведения о каждом потоке, идентификатор которого находится во входном массиве ids, без трассировки стека.
ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers)
Возвращает сведения о каждом потоке, идентификатор которого находится во входном массиве ids, включая трассировку стека и сведения о синхронизации.
default ThreadInfo[] getThreadInfo(long[] ids, boolean lockedMonitors, boolean lockedSynchronizers, int maxDepth)
Возвращает сведения о каждом потоке, идентификатор которого находится во входном массиве ids, включая трассировку стека с указанным максимальным числом элементов и сведения о синхронизации.
ThreadInfo[] getThreadInfo(long[] ids, int maxDepth)
Возвращает сведения о каждом потоке, идентификатор которого находится во входном массиве ids, включая трассировку стека с указанным числом элементов.
ThreadInfo getThreadInfo(long id, int maxDepth)
Возвращает сведения о потоке с указанным id, включая трассировку стека с указанным числом элементов.
long getThreadUserTime(long id)
Возвращает время ЦП в наносекундах, в течение которого поток с указанным идентификатором выполнялся в пользовательском режиме.
long getTotalStartedThreadCount()
Возвращает общее количество потоков платформы, созданных и запущенных с момента запуска виртуальной машины Java.
boolean isCurrentThreadCpuTimeSupported()
Проверяет, поддерживает ли виртуальная машина Java измерение времени ЦП потока платформы с помощью методов ThreadMXBean.getCurrentThreadCpuTime() и ThreadMXBean.getCurrentThreadUserTime().
boolean isObjectMonitorUsageSupported()
Проверяет, поддерживает ли виртуальная машина Java мониторинг использования объектных мониторов.
boolean isSynchronizerUsageSupported()
Проверяет, поддерживает ли виртуальная машина Java мониторинг использования синхронизаторов, которыми можно владеть.
boolean isThreadContentionMonitoringEnabled()
Проверяет, включен ли мониторинг конкуренции потоков.
boolean isThreadContentionMonitoringSupported()
Проверяет, поддерживает ли виртуальная машина Java мониторинг конкуренции потоков.
boolean isThreadCpuTimeEnabled()
Проверяет, включено ли измерение времени ЦП потоков.
boolean isThreadCpuTimeSupported()
Проверяет, поддерживает ли реализация виртуальной машины Java измерение времени ЦП для любого потока платформы.
void resetPeakThreadCount()
Сбрасывает пиковое количество потоков до текущего количества работающих потоков платформы.
void setThreadContentionMonitoringEnabled(boolean enable)
Включает или отключает мониторинг конкуренции потоков.
void setThreadCpuTimeEnabled(boolean enable)
Включает или отключает измерение времени ЦП потоков.

Подробное описание методов

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, 2026, 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.

Spec-Zone.ru

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