Интерфейс ThreadMXBean
- Все суперинтерфейсы:
-
PlatformManagedObject,ThreadMXBean
public interface ThreadMXBean extends ThreadMXBean
Платформенно-специфический интерфейс управления системой потоков виртуальной машины Java.
Это расширение платформы доступно только для реализации потоков, поддерживающей это расширение.
- С версии:
- 6u25
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
default long | getCurrentThreadAllocatedBytes() | Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для текущего потока. |
long | getThreadAllocatedBytes(long id) | Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для потока с указанным идентификатором. |
long[] | getThreadAllocatedBytes(long[] ids) | Возвращает приблизительное значение общего объёма памяти, в байтах, выделенной в куче памяти для каждого потока, идентификаторы которых находятся в входном массиве |
long[] | getThreadCpuTime(long[] ids) | Возвращает общее время работы процессора для каждого потока, идентификаторы которых находятся в входном массиве |
long[] | getThreadUserTime(long[] ids) | Возвращает время работы процессора каждого потока, идентификаторы которых находятся в входном массиве |
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)
getCurrentThreadAllocatedBytes
default long getCurrentThreadAllocatedBytes()
Возвращает приблизительное значение общего объёма памяти в байтах, выделенной в куче памяти для текущего потока. Возвращаемое значение является приблизительным, поскольку некоторые реализации Java виртуальной машины могут использовать механизмы выделения объектов, которые приводят к задержке между моментом выделения объекта и моментом записи его размера.
Это вспомогательный метод для локального управления и эквивалентен вызову:
getThreadAllocatedBytes(Thread.currentThread().getId());
- Возвращает:
- приблизительное значение общего объёма выделенной памяти в байтах в куче памяти для текущего потока, если измерение выделения памяти потока включено;
-1в противном случае. - Исключение:
-
UnsupportedOperationException- если реализация Java виртуальной машины не поддерживает измерение выделения памяти потока. - С:
- 11.0.9
- См. также:
-
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 виртуальной машины не поддерживает измерение выделения памяти потока. -
SecurityException- если существует менеджер безопасности и у вызывающего объекта нет разрешения ManagementPermission("control"). - См. также:
isThreadAllocatedMemorySupported()
© 1993, 2020, 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/11/docs/api/jdk.management/com/sun/management/ThreadMXBean.html