Spec-Zone.ru › OpenJDK 24

Интерфейс 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 виртуальных машин могут использовать механизмы выделения объектов, что приводит к задержке между временем выделения объекта и временем записи его размера.
Требования к реализации:
По умолчанию, если реализация Java виртуальной машины не поддерживает измерение выделения памяти потоков, выбрасывает UnsupportedOperationException, в противном случае ведёт себя так, как будто измерение выделения памяти потоков отключено.
Возвращает:
приблизительное значение общего объёма памяти в байтах, выделенной в куче памяти с момента запуска 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()

© 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://download.java.net/java/early_access/jdk24/docs/api/jdk.management/com/sun/management/ThreadMXBean.html

Spec-Zone.ru

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