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