Класс ForkJoinWorkerThread
java.lang.Object
java.lang.Thread
java.util.concurrent.ForkJoinWorkerThread
- Все реализуемые интерфейсы:
Runnable
public class ForkJoinWorkerThread extends Thread
Поток, управляемый
ForkJoinPool, который выполняет ForkJoinTask. Этот класс можно расширять только для добавления функциональности — переопределяемых методов, связанных с планированием или выполнением, нет. Однако можно переопределить методы инициализации и завершения, вызываемые до и после основного цикла обработки задач. Если вы создадите такой подкласс, вам также потребуется предоставить пользовательскую фабрику ForkJoinPool.ForkJoinWorkerThreadFactory, чтобы использовать ее в ForkJoinPool.- Начиная с:
- 1.7
Краткое описание вложенных классов
Вложенные классы и интерфейсы, объявленные в классе Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler | Модификатор и тип | Класс | Описание |
|---|---|---|
static interface |
Thread.Builder |
Построитель для объектов Thread и ThreadFactory. |
static enum |
Thread.State |
Состояние потока. |
static interface |
Thread.UncaughtExceptionHandler |
Интерфейс обработчиков, вызываемых при неожиданном завершении Thread из-за неперехваченного исключения. |
Краткое описание полей
Поля, объявленные в классе Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY | Модификатор и тип | Поле | Описание |
|---|---|---|
static final int |
MAX_PRIORITY |
Максимальный приоритет, который может иметь поток. |
static final int |
MIN_PRIORITY |
Минимальный приоритет, который может иметь поток. |
static final int |
NORM_PRIORITY |
Приоритет по умолчанию, назначаемый потоку. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создает ForkJoinWorkerThread, работающий в указанной группе потоков и пуле и использующий заданную политику сохранения ThreadLocal. |
|
protected |
Создает ForkJoinWorkerThread, работающий в указанном пуле. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ForkJoinPool |
getPool() |
Возвращает пул, в котором работает этот поток. |
int |
getPoolIndex() |
Возвращает уникальный индекс этого потока в пуле. |
int |
getQueuedTaskCount() |
Возвращает (неотрицательную) оценку количества задач в очереди потока. |
protected void |
onStart() |
Инициализирует внутреннее состояние после создания объекта, но до обработки каких-либо задач. |
protected void |
onTermination |
Выполняет очистку, связанную с завершением этого рабочего потока. |
void |
run() |
Этот метод должен быть общедоступным, но его никогда не следует вызывать явно. |
Методы, объявленные в классе Thread
activeCount, checkAccess, clone, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, isVirtual, join, join, join, join, ofPlatform, ofVirtual, onSpinWait, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, threadId, toString, yield | Модификатор и тип | Метод | Описание |
|---|---|---|
static int |
activeCount() |
Возвращает оценку количества активных платформенных потоков в группе потоков текущего потока и ее подгруппах. |
final void |
checkAccess() |
Устарел, будет удален: этот элемент API может быть удален в будущей версии. Изначально этот метод определял, имел ли выполняющийся в данный момент поток разрешение на изменение данного потока. |
protected Object |
clone() |
Выбрасывает CloneNotSupportedException, поскольку поток Thread нельзя осмысленно клонировать. |
static Thread |
currentThread() |
Возвращает объект Thread для текущего потока. |
static void |
dumpStack() |
Выводит трассировку стека текущего потока в стандартный поток ошибок. |
static int |
enumerate |
Копирует в указанный массив все активные платформенные потоки из группы потоков текущего потока и ее подгрупп. |
static Map |
getAllStackTraces() |
Возвращает карту трассировок стека всех активных платформенных потоков. |
ClassLoader |
getContextClassLoader() |
Возвращает контекстный ClassLoader для этого потока. |
static Thread.UncaughtExceptionHandler |
getDefaultUncaughtExceptionHandler() |
Возвращает обработчик по умолчанию, вызываемый при неожиданном завершении потока из-за неперехваченного исключения. |
long |
getId() |
Устарел. Этот метод не является final и может быть переопределен так, чтобы возвращать значение, отличное от идентификатора потока. |
final String |
getName() |
Возвращает имя этого потока. |
final int |
getPriority() |
Возвращает приоритет этого потока. |
StackTraceElement[] |
getStackTrace() |
Возвращает массив элементов трассировки стека, представляющих дамп стека этого потока. |
Thread.State |
getState() |
Возвращает состояние этого потока. |
final ThreadGroup |
getThreadGroup() |
Возвращает группу потоков этого потока или null, если поток завершился. |
Thread.UncaughtExceptionHandler |
getUncaughtExceptionHandler() |
Возвращает обработчик, вызываемый при неожиданном завершении этого потока из-за неперехваченного исключения. |
static boolean |
holdsLock |
Возвращает true тогда и только тогда, когда текущий поток удерживает блокировку монитора указанного объекта. |
void |
interrupt() |
Прерывает этот поток. |
static boolean |
interrupted() |
Проверяет, был ли прерван текущий поток. |
final boolean |
isAlive() |
Проверяет, активен ли этот поток. |
final boolean |
isDaemon() |
Проверяет, является ли этот поток потоком-демоном. |
boolean |
isInterrupted() |
Проверяет, был ли прерван этот поток. |
final boolean |
isVirtual() |
Возвращает true, если этот поток является виртуальным. |
final void |
join() |
Ожидает завершения этого потока. |
final void |
join |
Ожидает завершения этого потока не более millis миллисекунд. |
final void |
join |
Ожидает завершения этого потока не более millis миллисекунд и nanos наносекунд. |
final boolean |
join |
Ожидает завершения этого потока в течение указанного периода времени. |
static Thread.Builder.OfPlatform |
ofPlatform() |
Возвращает построитель для создания платформенного Thread или ThreadFactory, который создает платформенные потоки. |
static Thread.Builder.OfVirtual |
ofVirtual() |
Возвращает построитель для создания виртуального Thread или ThreadFactory, который создает виртуальные потоки. |
static void |
onSpinWait() |
Указывает, что вызывающий код временно не может продолжать работу до тех пор, пока не произойдет одно или несколько действий со стороны других процессов. |
void |
setContextClassLoader |
Задает контекстный ClassLoader для этого потока. |
final void |
setDaemon |
Помечает этот поток как поток-демон или обычный поток. |
static void |
setDefaultUncaughtExceptionHandler |
Задает обработчик по умолчанию, вызываемый при неожиданном завершении потока из-за неперехваченного исключения, если для этого потока не задан другой обработчик. |
final void |
setName |
Изменяет имя этого потока на значение аргумента name. |
final void |
setPriority |
Изменяет приоритет этого потока. |
void |
setUncaughtExceptionHandler |
Задает обработчик, вызываемый при неожиданном завершении этого потока из-за неперехваченного исключения. |
static void |
sleep |
Приостанавливает выполнение текущего потока (временно прекращает его выполнение) на указанное количество миллисекунд с учетом точности системных таймеров и планировщиков. |
static void |
sleep |
Приостанавливает выполнение текущего потока (временно прекращает его выполнение) на указанное количество миллисекунд и указанное количество наносекунд с учетом точности системных таймеров и планировщиков. |
static void |
sleep |
Приостанавливает выполнение текущего потока (временно прекращает его выполнение) на указанный промежуток времени с учетом точности системных таймеров и планировщиков. |
void |
start() |
Планирует запуск этого потока. |
static Thread |
startVirtualThread |
Создает виртуальный поток для выполнения задачи и планирует его запуск. |
final long |
threadId() |
Возвращает идентификатор этого потока Thread. |
String |
toString() |
Возвращает строковое представление этого потока. |
static void |
yield() |
Подсказка планировщику о том, что текущий поток готов уступить процессор, которым он сейчас пользуется. |
Методы, объявленные в классе Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
boolean |
equals |
Указывает, равен ли другой объект этому объекту. |
protected void |
finalize() |
Устарел, будет удален: этот элемент API может быть удален в будущей версии. Финализация устарела и может быть удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно посредством уведомления или прерывания, либо до истечения заданного времени. |
Подробное описание конструкторов
ForkJoinWorkerThread
protected ForkJoinWorkerThread(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
Создает ForkJoinWorkerThread, работающий в указанной группе потоков и пуле и использующий заданную политику сохранения ThreadLocal.
- Параметры:
-
group— если значение не равно null, группа потоков для этого потока. В противном случае используется группа потоков текущего потока. -
pool— пул, в котором работает этот поток -
preserveThreadLocals— если значение true, значения переменных ThreadLocal всегда сохраняются между задачами; в противном случае они могут быть очищены. - Выбрасывает:
-
NullPointerException— если pool равен null - Начиная с:
- 19
ForkJoinWorkerThread
protected ForkJoinWorkerThread(ForkJoinPool pool)
Создает ForkJoinWorkerThread, работающий в указанном пуле.
- Параметры:
-
pool— пул, в котором работает этот поток - Выбрасывает:
-
NullPointerException— если pool равен null
Подробное описание методов
getPool
public ForkJoinPool getPool()
Возвращает пул, в котором работает этот поток.
- Возвращает:
- пул
getPoolIndex
public int getPoolIndex()
Возвращает уникальный индекс этого потока в пуле. Возвращаемое значение находится в диапазоне от нуля до максимального количества потоков (минус один), которые могут существовать в пуле, и не меняется в течение жизненного цикла потока. Этот метод может быть полезен приложениям, которые отслеживают состояние или собирают результаты для каждого рабочего потока, а не для каждой задачи.
- Возвращает:
- индекс
getQueuedTaskCount
public int getQueuedTaskCount()
Возвращает (неотрицательную) оценку количества задач в очереди потока.
- Возвращает:
- (неотрицательную) оценку количества задач в очереди потока
- Начиная с:
- 20
- См. также:
onStart
protected void onStart()
Инициализирует внутреннее состояние после создания объекта, но до обработки каких-либо задач. Если вы переопределяете этот метод, необходимо вызвать
super.onStart() в начале метода. Инициализация требует осторожности: большинство полей должны иметь допустимые значения по умолчанию, чтобы обращения к ним из других потоков выполнялись корректно, даже если этот поток еще не начал обрабатывать задачи.onTermination
protected void onTermination(Throwable exception)
Выполняет очистку, связанную с завершением этого рабочего потока. Если вы переопределяете этот метод, необходимо вызвать
super.onTermination в конце переопределенного метода.- Параметры:
-
exception— исключение, из-за которого этот поток прерывает работу вследствие неисправимой ошибки, илиnull, если выполнение завершилось нормально
run
public void run()
Этот метод должен быть общедоступным, но его никогда не следует вызывать явно. Он выполняет основной цикл для запуска
ForkJoinTask.
© 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.