java.lang.Object
java.lang.Thread
java.util.concurrent.ForkJoinWorkerThread
- All Implemented Interfaces:
- Runnable
public class ForkJoinWorkerThread extends Thread
A thread managed by a 
ForkJoinPool, which executes
 ForkJoinTasks.
 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.- Since:
- 1.7
- 
Nested Class SummaryNested classes/interfaces declared in class java.lang.ThreadThread.State, Thread.UncaughtExceptionHandler
- 
Field Summary
- 
Constructor SummaryConstructors Modifier Constructor Description protectedForkJoinWorkerThread(ForkJoinPool pool)Creates a ForkJoinWorkerThread operating in the given pool.
- 
Method SummaryModifier and Type Method Description ForkJoinPoolgetPool()Returns the pool hosting this thread.intgetPoolIndex()Returns the unique index number of this thread in its pool.protected voidonStart()Initializes internal state after construction but before processing any tasks.protected voidonTermination(Throwable exception)Performs cleanup associated with termination of this worker thread.voidrun()This method is required to be public, but should never be called explicitly.Methods declared in class java.lang.ThreadactiveCount, checkAccess, clone, countStackFrames, currentThread, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, suspend, toString, yield
- 
Constructor Details- 
ForkJoinWorkerThreadCreates a ForkJoinWorkerThread operating in the given pool.- Parameters:
- pool- the pool this thread works in
- Throws:
- NullPointerException- if pool is null
 
 
- 
- 
Method Details- 
getPoolReturns the pool hosting this thread.- Returns:
- the pool
 
- 
getPoolIndexpublic int getPoolIndex()Returns the unique index number of this thread in its pool. The returned value ranges from zero to the maximum number of threads (minus one) that may exist in the pool, and does not change during the lifetime of the thread. This method may be useful for applications that track status or collect results per-worker-thread rather than per-task.- Returns:
- the index number
 
- 
onStartprotected void onStart()Initializes internal state after construction but before processing any tasks. If you override this method, you must invokesuper.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.
- 
onTerminationPerforms cleanup associated with termination of this worker thread. If you override this method, you must invokesuper.onTerminationat the end of the overridden method.- Parameters:
- exception- the exception causing this thread to abort due to an unrecoverable error, or- nullif completed normally
 
- 
runpublic void run()This method is required to be public, but should never be called explicitly. It performs the main run loop to executeForkJoinTasks.- Specified by:
- runin interface- Runnable
- Overrides:
- runin class- Thread
- See Also:
- Thread.start(),- Thread.stop(),- Thread(ThreadGroup, Runnable, String)
 
 
-