Runnable
public class ForkJoinWorkerThread extends Thread
ForkJoinPool
, which executes ForkJoinTask
s. This class is subclassable solely for the sake of adding functionality -- there are no overridable methods dealing with scheduling or execution. However, you can override initialization and termination methods surrounding the main task processing loop. If you do create such a subclass, you will also need to supply a custom ForkJoinPool.ForkJoinWorkerThreadFactory
to use it in a ForkJoinPool
.Thread.Builder, Thread.State, Thread.UncaughtExceptionHandler
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
Modifier | Constructor | Description |
---|---|---|
protected |
Creates a ForkJoinWorkerThread operating in the given thread group and pool, and with the given policy for preserving ThreadLocals. |
|
protected |
Creates a ForkJoinWorkerThread operating in the given pool. |
Modifier and Type | Method | Description |
---|---|---|
ForkJoinPool |
getPool() |
Returns the pool hosting this thread. |
int |
getPoolIndex() |
Returns the unique index number of this thread in its pool. |
int |
getQueuedTaskCount() |
Returns a (non-negative) estimate of the number of tasks in the thread's queue. |
protected void |
onStart() |
Initializes internal state after construction but before processing any tasks. |
protected void |
onTermination |
Performs cleanup associated with termination of this worker thread. |
void |
run() |
This method is required to be public, but should never be called explicitly. |
activeCount, checkAccess, clone, countStackFrames, 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, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, sleep, start, startVirtualThread, stop, suspend, threadId, toString, yield
protected ForkJoinWorkerThread(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
group
- if non-null, the thread group for this thread. Otherwise, the thread group is chosen by the security manager if present, else set to the current thread's thread group.pool
- the pool this thread works inpreserveThreadLocals
- if true, always preserve the values of ThreadLocal variables across tasks; otherwise they may be cleared.NullPointerException
- if pool is nullprotected ForkJoinWorkerThread(ForkJoinPool pool)
pool
- the pool this thread works inNullPointerException
- if pool is nullpublic ForkJoinPool getPool()
public int getPoolIndex()
public int getQueuedTaskCount()
protected void onStart()
super.onStart()
at the beginning of the method. Initialization requires care: Most fields must have legal default values, to ensure that attempted accesses from other threads work correctly even before this thread starts processing tasks.protected void onTermination(Throwable exception)
super.onTermination
at the end of the overridden method.exception
- the exception causing this thread to abort due to an unrecoverable error, or null
if completed normallypublic void run()
ForkJoinTask
s.
© 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/java.base/java/util/concurrent/ForkJoinWorkerThread.html