ForkJoinWorkerThread
  public
  
  
  
  class
  ForkJoinWorkerThread
  
  
  
  
    extends Thread
  
  
  
  
  
  
| java.lang.Object | ||
| ↳ | java.lang.Thread | |
| ↳ | java.util.concurrent.ForkJoinWorkerThread | |
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.
Summary
| Inherited constants | 
|---|
| Protected constructors | |
|---|---|
| 
      ForkJoinWorkerThread(ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
      Creates a ForkJoinWorkerThread operating in the given thread group and pool, and with the given policy for preserving ThreadLocals. | |
| 
      ForkJoinWorkerThread(ForkJoinPool pool)
      Creates a ForkJoinWorkerThread operating in the given pool. | |
| Public methods | |
|---|---|
| 
        
        
        
        
        
        ForkJoinPool | 
      getPool()
      Returns the pool hosting this thread. | 
| 
        
        
        
        
        
        int | 
      getPoolIndex()
      Returns the unique index number of this thread in its pool. | 
| 
        
        
        
        
        
        int | 
      getQueuedTaskCount()
      
 | 
| 
        
        
        
        
        
        void | 
      run()
      This method is required to be public, but should never be called explicitly. | 
| Protected methods | |
|---|---|
| 
        
        
        
        
        
        void | 
      onStart()
      Initializes internal state after construction but before processing any tasks. | 
| 
        
        
        
        
        
        void | 
      onTermination(Throwable exception)
      Performs cleanup associated with termination of this worker thread. | 
| Inherited methods | |
|---|---|
Protected constructors
ForkJoinWorkerThread
protected ForkJoinWorkerThread (ThreadGroup group, ForkJoinPool pool, boolean preserveThreadLocals)
Creates a ForkJoinWorkerThread operating in the given thread group and pool, and with the given policy for preserving ThreadLocals.
| Parameters | |
|---|---|
| group | ThreadGroup: 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 | ForkJoinPool: the pool this thread works in | 
| preserveThreadLocals | boolean: if true, always preserve the values of
 ThreadLocal variables across tasks; otherwise they may be cleared. | 
| Throws | |
|---|---|
| NullPointerException | if pool is null | 
ForkJoinWorkerThread
protected ForkJoinWorkerThread (ForkJoinPool pool)
Creates a ForkJoinWorkerThread operating in the given pool.
| Parameters | |
|---|---|
| pool | ForkJoinPool: the pool this thread works in | 
| Throws | |
|---|---|
| NullPointerException | if pool is null | 
Public methods
getPool
public ForkJoinPool getPool ()
Returns the pool hosting this thread.
| Returns | |
|---|---|
| ForkJoinPool | the pool | 
getPoolIndex
public 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 | |
|---|---|
| int | the index number | 
getQueuedTaskCount
public int getQueuedTaskCount ()
| Returns | |
|---|---|
| int | a (non-negative) estimate of the number of tasks in the thread's queue | 
See also:
run
public void run ()
This method is required to be public, but should never be
 called explicitly. It performs the main run loop to execute
 ForkJoinTasks.
Protected methods
onStart
protected void onStart ()
Initializes internal state after construction but before
 processing any tasks. If you override this method, you must
 invoke 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.
onTermination
protected void onTermination (Throwable exception)
Performs cleanup associated with termination of this worker
 thread.  If you override this method, you must invoke
 super.onTermination at the end of the overridden method.
| Parameters | |
|---|---|
| exception | Throwable: the exception causing this thread to abort due
 to an unrecoverable error, ornullif completed normally | 
