Класс ForkJoinWorkerThread
java.lang.Object
java.lang.Thread
java.util.concurrent.ForkJoinWorkerThread
- Все реализованные интерфейсы:
Runnable
public class ForkJoinWorkerThread extends Thread
Поток, управляемый
ForkJoinPool, который выполняет задачи ForkJoinTask. Этот класс может быть расширен только для добавления функциональности — нет переопределяемых методов, связанных с планированием или выполнением. Однако вы можете переопределить методы инициализации и завершения, которые окружают основной цикл обработки задач. Если вы создаёте такой подкласс, вам также необходимо предоставить пользовательский ForkJoinPool.ForkJoinWorkerThreadFactory для его использования в ForkJoinPool.- С момента:
- 1.7
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе java.lang.Thread
Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
Краткое описание полей
Поля, объявленные в классе java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт ForkJoinWorkerThread, работающий в заданной группе потоков и пуле, и с заданным политикой сохранения ThreadLocals. |
|
protected |
Создаёт ForkJoinWorkerThread, работающий в заданном пуле. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
ForkJoinPool |
getPool() |
Возвращает пул, который содержит этот поток. |
int |
getPoolIndex() |
Возвращает уникальный номер индекса этого потока в его пуле. |
int |
getQueuedTaskCount() |
Возвращает оценку (неотрицательное число) количества задач в очереди потока. |
protected void |
onStart() |
Инициализирует внутреннее состояние после создания, но перед обработкой каких-либо задач. |
protected void |
onTermination |
Выполняет очистку, связанную с завершением этого потока-работника. |
void |
run() |
Этот метод должен быть публичным, но его никогда не следует вызывать явно. |
Методы, объявленные в классе java.lang.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, stop, threadId, toString, yield
Подробное описание конструкторов
ForkJoinWorkerThread
protected ForkJoinWorkerThread(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
Создаёт ForkJoinWorkerThread, работающий в заданной группе потоков и пуле, и с заданным политикой сохранения ThreadLocals.
- Параметры:
-
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.
https://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/ForkJoinWorkerThread.html