Интерфейс ThreadMXBean
- Все суперинтерфейсы:
PlatformManagedObject, ThreadMXBean
public interface ThreadMXBean extends ThreadMXBean
Это расширение платформы доступно только для реализации потоков, поддерживающей данное расширение.
- Начиная с версии:
- 6u25
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
default long |
getCurrentThreadAllocatedBytes() |
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче текущим потоком. |
long |
getThreadAllocatedBytes |
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче потоком с указанным идентификатором. |
long[] |
getThreadAllocatedBytes |
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче каждым потоком, идентификатор которого содержится во входном массиве ids. |
long[] |
getThreadCpuTime |
Возвращает общее процессорное время в наносекундах для каждого потока, идентификатор которого содержится во входном массиве ids. |
long[] |
getThreadUserTime |
Возвращает время в наносекундах, которое каждый поток, идентификатор которого содержится во входном массиве ids, выполнялся в пользовательском режиме. |
default long |
getTotalThreadAllocatedBytes() |
Возвращает приблизительное общее количество памяти в байтах, выделенной в куче всеми потоками с момента запуска виртуальной машины Java. |
boolean |
isThreadAllocatedMemoryEnabled() |
Проверяет, включено ли измерение выделения памяти потоками. |
boolean |
isThreadAllocatedMemorySupported() |
Проверяет, поддерживает ли реализация виртуальной машины Java измерение выделения памяти потоками. |
void |
setThreadAllocatedMemoryEnabled |
Включает или отключает измерение выделения памяти потоками. |
Методы, объявленные в интерфейсе 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 не поддерживает измерение процессорного времени. - См. также:
getThreadUserTime
long[] getThreadUserTime(long[] ids)
ids, выполнялся в пользовательском режиме. Возвращаемые значения имеют точность до наносекунды, но не обязательно обладают точностью в наносекундах. Этот метод эквивалентен вызову метода ThreadMXBean.getThreadUserTime(long) для каждого идентификатора потока во входном массиве ids с записью возвращаемого значения в соответствующий элемент возвращаемого массива.
- Параметры:
-
ids— массив идентификаторов потоков. - Возвращает:
- массив значений типа long, каждое из которых представляет собой количество процессорного времени, использованного потоком в пользовательском режиме; поток с идентификатором из соответствующего элемента входного массива идентификаторов должен быть платформенным и активным, а измерение процессорного времени должно быть включено; в противном случае —
-1. - Исключения:
-
NullPointerException— еслиidsимеет значениеnull -
IllegalArgumentException— если какой-либо элемент входного массиваidsимеет значение<=0. -
UnsupportedOperationException— если реализация виртуальной машины Java не поддерживает измерение процессорного времени. - См. также:
getTotalThreadAllocatedBytes
default long getTotalThreadAllocatedBytes()
- Требования к реализации:
- Реализация по умолчанию выбрасывает
UnsupportedOperationException, если реализация виртуальной машины Java не поддерживает измерение выделения памяти потоками; в противном случае она ведет себя так, как если бы измерение выделения памяти потоками было отключено. - Возвращает:
- приблизительное общее количество памяти в байтах, выделенной в куче с момента запуска виртуальной машины Java, если измерение выделения памяти потоками включено; в противном случае —
-1. - Исключения:
-
UnsupportedOperationException— если реализация виртуальной машины Java не поддерживает измерение выделения памяти потоками. - Начиная с версии:
- 21
- См. также:
getCurrentThreadAllocatedBytes
default long getCurrentThreadAllocatedBytes()
Этот вспомогательный метод предназначен для локального управления и эквивалентен следующему вызову:
getThreadAllocatedBytes(Thread.currentThread().threadId());
- Возвращает:
- приблизительное общее количество памяти в байтах, выделенной в куче текущим потоком, если измерение выделения памяти потоками включено; в противном случае —
-1. - Исключения:
-
UnsupportedOperationException— если реализация виртуальной машины Java не поддерживает измерение выделения памяти потоками. - Начиная с версии:
- 14
- См. также:
getThreadAllocatedBytes
long getThreadAllocatedBytes(long id)
Если поток с указанным идентификатором является виртуальным, не активен или не существует, этот метод возвращает -1. Если измерение выделения памяти потоками отключено, этот метод возвращает -1. Поток считается активным, если он был запущен и еще не завершился.
Если измерение выделения памяти потоками включается после запуска потока, реализация виртуальной машины Java может выбрать в качестве момента начала измерения любой момент времени вплоть до момента включения этой возможности включительно.
- Параметры:
-
id— идентификатор потока - Возвращает:
- приблизительное общее количество памяти в байтах, выделенной в куче потоком с указанным идентификатором, если этот поток является платформенным и активным, а измерение выделения памяти потоками включено; в противном случае —
-1. - Исключения:
-
IllegalArgumentException— еслиid<=0. -
UnsupportedOperationException— если реализация виртуальной машины Java не поддерживает измерение выделения памяти потоками. - См. также:
getThreadAllocatedBytes
long[] getThreadAllocatedBytes(long[] ids)
ids. Возвращаемые значения являются приблизительными, поскольку некоторые реализации виртуальной машины Java могут использовать механизмы выделения объектов, из-за которых между выделением объекта и фиксацией его размера возникает задержка. Этот метод эквивалентен вызову метода getThreadAllocatedBytes(long) для каждого идентификатора потока во входном массиве ids с записью возвращаемого значения в соответствующий элемент возвращаемого массива.
- Параметры:
-
ids— массив идентификаторов потоков. - Возвращает:
- массив значений типа long, каждое из которых представляет собой приблизительное общее количество памяти в байтах, выделенной в куче потоком, идентификатор которого находится в соответствующем элементе входного массива идентификаторов.
- Исключения:
-
NullPointerException— еслиidsимеет значениеnull -
IllegalArgumentException— если какой-либо элемент входного массиваidsимеет значение<=0. -
UnsupportedOperationException— если реализация виртуальной машины Java не поддерживает измерение выделения памяти потоками. - См. также:
isThreadAllocatedMemorySupported
boolean isThreadAllocatedMemorySupported()
- Возвращает:
-
true, если реализация виртуальной машины Java поддерживает измерение выделения памяти потоками; в противном случае —false.
isThreadAllocatedMemoryEnabled
boolean isThreadAllocatedMemoryEnabled()
- Возвращает:
-
true, если измерение выделения памяти потоками включено; в противном случае —false. - Исключения:
-
UnsupportedOperationException— если виртуальная машина Java не поддерживает измерение выделения памяти потоками. - См. также:
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable)
- Параметры:
-
enable—trueдля включения;falseдля отключения. - Исключения:
-
UnsupportedOperationException— если виртуальная машина Java не поддерживает измерение выделения памяти потоками. - См. также:
© 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