Интерфейс 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 |
Включает или отключает измерение выделения памяти потоков. |
Методы, объявленные в интерфейсе 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 виртуальной машины не поддерживает измерение времени процессорного времени. - См. также:
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 виртуальной машины не поддерживает измерение выделения памяти потоками. - См. также:
Поддерживается ли измерение распределения памяти потоков
boolean isThreadAllocatedMemorySupported()
- Возвращает:
-
trueесли реализация виртуальной машины Java поддерживает измерение распределения памяти потоков;falseв противном случае.
Включено ли измерение распределения памяти потоков
boolean isThreadAllocatedMemoryEnabled()
- Возвращает:
-
trueесли измерение распределения памяти потоков включено;falseв противном случае. - Выбрасывает:
-
UnsupportedOperationException- если реализация виртуальной машины Java не поддерживает измерение распределения памяти потоков. - См. также:
setThreadAllocatedMemoryEnabled
void setThreadAllocatedMemoryEnabled(boolean enable)
- Параметры:
-
enable-trueдля включения;falseдля отключения. - Выбрасывает:
-
UnsupportedOperationException- если реализация виртуальной машины Java не поддерживает измерение распределения памяти потоков. -
SecurityException- если существует менеджер безопасности, и у вызывающего объекта нет разрешения ManagementPermission("control"). - См. также:
© 1993, 2023, 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/21/docs/api/jdk.management/com/sun/management/ThreadMXBean.html