Groovy Documentation

gpars
[Java] Class AbstractForkJoinWorker

java.lang.Object
  jsr166y.forkjoin.ForkJoinTask
      jsr166y.forkjoin.RecursiveTask
          gpars.AbstractForkJoinWorker

@SuppressWarnings({"AbstractClassWithOnlyOneDirectInheritor", "CollectionWithoutInitialCapacity"})
public abstract class AbstractForkJoinWorker
extends jsr166y.forkjoin.RecursiveTask

Implements the ForkJoin worker contract. Subclasses need to implement the compute() to perform the actual Fork/Join algorithm leveraging the options provided by the AbstractForkJoinWorker class. The AbstractForJoinWorker class takes care of the child sub-processes.

Author: Vaclav Pech Date: Nov 1, 2009


Constructor Summary
protected AbstractForkJoinWorker()

 
Method Summary
protected Object compute()

protected Object computeTask()

protected void forkOffChild(AbstractForkJoinWorker child)

Forks a child task.

protected List getChildrenResults()

Waits for and returns the results of the child tasks.

 
Methods inherited from class jsr166y.forkjoin.RecursiveTask
jsr166y.forkjoin.RecursiveTask#exec(), jsr166y.forkjoin.RecursiveTask#finish(java.lang.Object), jsr166y.forkjoin.RecursiveTask#rawResult(), jsr166y.forkjoin.RecursiveTask#forkJoin(), jsr166y.forkjoin.RecursiveTask#finishExceptionally(java.lang.Throwable), jsr166y.forkjoin.RecursiveTask#reinitialize(), jsr166y.forkjoin.RecursiveTask#getException(), jsr166y.forkjoin.RecursiveTask#join(), jsr166y.forkjoin.RecursiveTask#fork(), jsr166y.forkjoin.RecursiveTask#cancel(), jsr166y.forkjoin.RecursiveTask#isCancelled(), jsr166y.forkjoin.RecursiveTask#isDone(), jsr166y.forkjoin.RecursiveTask#isStolen(), jsr166y.forkjoin.RecursiveTask#quietlyJoin(), jsr166y.forkjoin.RecursiveTask#wait(long), jsr166y.forkjoin.RecursiveTask#wait(long, int), jsr166y.forkjoin.RecursiveTask#wait(), jsr166y.forkjoin.RecursiveTask#equals(java.lang.Object), jsr166y.forkjoin.RecursiveTask#toString(), jsr166y.forkjoin.RecursiveTask#hashCode(), jsr166y.forkjoin.RecursiveTask#getClass(), jsr166y.forkjoin.RecursiveTask#notify(), jsr166y.forkjoin.RecursiveTask#notifyAll()
 
Methods inherited from class jsr166y.forkjoin.ForkJoinTask
jsr166y.forkjoin.ForkJoinTask#getException(), jsr166y.forkjoin.ForkJoinTask#join(), jsr166y.forkjoin.ForkJoinTask#exec(), jsr166y.forkjoin.ForkJoinTask#finish(java.lang.Object), jsr166y.forkjoin.ForkJoinTask#fork(), jsr166y.forkjoin.ForkJoinTask#cancel(), jsr166y.forkjoin.ForkJoinTask#isCancelled(), jsr166y.forkjoin.ForkJoinTask#isDone(), jsr166y.forkjoin.ForkJoinTask#rawResult(), jsr166y.forkjoin.ForkJoinTask#forkJoin(), jsr166y.forkjoin.ForkJoinTask#finishExceptionally(java.lang.Throwable), jsr166y.forkjoin.ForkJoinTask#reinitialize(), jsr166y.forkjoin.ForkJoinTask#isStolen(), jsr166y.forkjoin.ForkJoinTask#quietlyJoin(), jsr166y.forkjoin.ForkJoinTask#wait(long), jsr166y.forkjoin.ForkJoinTask#wait(long, int), jsr166y.forkjoin.ForkJoinTask#wait(), jsr166y.forkjoin.ForkJoinTask#equals(java.lang.Object), jsr166y.forkjoin.ForkJoinTask#toString(), jsr166y.forkjoin.ForkJoinTask#hashCode(), jsr166y.forkjoin.ForkJoinTask#getClass(), jsr166y.forkjoin.ForkJoinTask#notify(), jsr166y.forkjoin.ForkJoinTask#notifyAll()
 

Constructor Detail

AbstractForkJoinWorker

protected AbstractForkJoinWorker()


 
Method Detail

compute

@Override
protected final Object compute()


computeTask

protected Object computeTask()


forkOffChild

protected final void forkOffChild(AbstractForkJoinWorker child)
Forks a child task. Makes sure it has a means to indicate back completion. The worker is stored in the internal list of workers for evidence and easy result retrieval through getChildrenResults().
Parameters:
child - The child task


getChildrenResults

protected final List getChildrenResults()
Waits for and returns the results of the child tasks.
Returns:
A list of results returned from the child tasks


 

Groovy Documentation