Package jsr166y
Class ForkJoinWorkerThread
java.lang.Object
java.lang.Thread
jsr166y.ForkJoinWorkerThread
- All Implemented Interfaces:
Runnable
A thread managed by a
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
.- Since:
- 1.7
-
Nested Class Summary
Nested classes/interfaces inherited from class java.lang.Thread
Thread.State, Thread.UncaughtExceptionHandler
-
Field Summary
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Creates a ForkJoinWorkerThread operating in the given pool. -
Method Summary
Modifier and TypeMethodDescriptiongetPool()
Returns the pool hosting this thread.int
Returns the index number of this thread in its pool.protected void
onStart()
Initializes internal state after construction but before processing any tasks.protected void
onTermination
(Throwable exception) Performs cleanup associated with termination of this worker thread.void
run()
This method is required to be public, but should never be called explicitly.Methods inherited from class java.lang.Thread
activeCount, 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
-
ForkJoinWorkerThread
Creates a ForkJoinWorkerThread operating in the given pool.- Parameters:
pool
- the pool this thread works in- Throws:
NullPointerException
- if pool is null
-
-
Method Details
-
getPool
Returns the pool hosting this thread.- Returns:
- the pool
-
getPoolIndex
public int getPoolIndex()Returns the index number of this thread in its pool. The returned value ranges from zero to the maximum number of threads (minus one) that have ever been created in the pool. This method may be useful for applications that track status or collect results per-worker rather than per-task.- Returns:
- the index number
-
onStart
protected 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. -
onTermination
Performs cleanup associated with termination of this worker thread. If you override this method, you must invokesuper.onTermination
at the end of the overridden method.- Parameters:
exception
- the exception causing this thread to abort due to an unrecoverable error, ornull
if completed normally
-
run
public void run()This method is required to be public, but should never be called explicitly. It performs the main run loop to executeForkJoinTask
s.
-