Интерфейс 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, в режиме пользователя, в наносекундах.

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

Spec-Zone .ru
спецификации, руководства, описания, API