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.
Modifiers | Name | Description |
---|---|---|
private java.util.List<AbstractForkJoinWorker<T>> |
children |
Stores the child workers |
Constructor and description |
---|
protected AbstractForkJoinWorker
() |
Type | Name and description |
---|---|
protected T |
compute() |
protected T |
computeTask() |
protected void |
forkOffChild(AbstractForkJoinWorker<T> child) Forks a child task. |
java.util.List<T> |
getChildrenResults() Waits for and returns the results of the child tasks. |
Methods inherited from class | Name |
---|---|
class java.util.concurrent.RecursiveTask |
java.util.concurrent.RecursiveTask#getRawResult(), java.util.concurrent.RecursiveTask#invoke(), java.util.concurrent.RecursiveTask#get(), java.util.concurrent.RecursiveTask#get(long, java.util.concurrent.TimeUnit), java.util.concurrent.RecursiveTask#join(), java.util.concurrent.RecursiveTask#getException(), java.util.concurrent.RecursiveTask#reinitialize(), java.util.concurrent.RecursiveTask#getPool(), java.util.concurrent.RecursiveTask#isCancelled(), java.util.concurrent.RecursiveTask#cancel(boolean), java.util.concurrent.RecursiveTask#invokeAll(java.util.concurrent.ForkJoinTask, java.util.concurrent.ForkJoinTask), java.util.concurrent.RecursiveTask#invokeAll([Ljava.util.concurrent.ForkJoinTask;), java.util.concurrent.RecursiveTask#invokeAll(java.util.Collection), java.util.concurrent.RecursiveTask#complete(java.lang.Object), java.util.concurrent.RecursiveTask#isDone(), java.util.concurrent.RecursiveTask#getQueuedTaskCount(), java.util.concurrent.RecursiveTask#getSurplusQueuedTaskCount(), java.util.concurrent.RecursiveTask#quietlyJoin(), java.util.concurrent.RecursiveTask#adapt(java.lang.Runnable, java.lang.Object), java.util.concurrent.RecursiveTask#adapt(java.lang.Runnable), java.util.concurrent.RecursiveTask#adapt(java.util.concurrent.Callable), java.util.concurrent.RecursiveTask#compareAndSetForkJoinTaskTag(short, short), java.util.concurrent.RecursiveTask#completeExceptionally(java.lang.Throwable), java.util.concurrent.RecursiveTask#getForkJoinTaskTag(), java.util.concurrent.RecursiveTask#helpQuiesce(), java.util.concurrent.RecursiveTask#inForkJoinPool(), java.util.concurrent.RecursiveTask#isCompletedAbnormally(), java.util.concurrent.RecursiveTask#isCompletedNormally(), java.util.concurrent.RecursiveTask#quietlyComplete(), java.util.concurrent.RecursiveTask#quietlyInvoke(), java.util.concurrent.RecursiveTask#setForkJoinTaskTag(short), java.util.concurrent.RecursiveTask#tryUnfork(), java.util.concurrent.RecursiveTask#fork(), java.util.concurrent.RecursiveTask#wait(), java.util.concurrent.RecursiveTask#wait(long, int), java.util.concurrent.RecursiveTask#wait(long), java.util.concurrent.RecursiveTask#equals(java.lang.Object), java.util.concurrent.RecursiveTask#toString(), java.util.concurrent.RecursiveTask#hashCode(), java.util.concurrent.RecursiveTask#getClass(), java.util.concurrent.RecursiveTask#notify(), java.util.concurrent.RecursiveTask#notifyAll() |
class java.util.concurrent.ForkJoinTask |
java.util.concurrent.ForkJoinTask#invoke(), java.util.concurrent.ForkJoinTask#get(), java.util.concurrent.ForkJoinTask#get(long, java.util.concurrent.TimeUnit), java.util.concurrent.ForkJoinTask#join(), java.util.concurrent.ForkJoinTask#getException(), java.util.concurrent.ForkJoinTask#reinitialize(), java.util.concurrent.ForkJoinTask#getPool(), java.util.concurrent.ForkJoinTask#isCancelled(), java.util.concurrent.ForkJoinTask#cancel(boolean), java.util.concurrent.ForkJoinTask#invokeAll(java.util.concurrent.ForkJoinTask, java.util.concurrent.ForkJoinTask), java.util.concurrent.ForkJoinTask#invokeAll([Ljava.util.concurrent.ForkJoinTask;), java.util.concurrent.ForkJoinTask#invokeAll(java.util.Collection), java.util.concurrent.ForkJoinTask#complete(java.lang.Object), java.util.concurrent.ForkJoinTask#isDone(), java.util.concurrent.ForkJoinTask#getQueuedTaskCount(), java.util.concurrent.ForkJoinTask#getSurplusQueuedTaskCount(), java.util.concurrent.ForkJoinTask#quietlyJoin(), java.util.concurrent.ForkJoinTask#adapt(java.lang.Runnable, java.lang.Object), java.util.concurrent.ForkJoinTask#adapt(java.lang.Runnable), java.util.concurrent.ForkJoinTask#adapt(java.util.concurrent.Callable), java.util.concurrent.ForkJoinTask#compareAndSetForkJoinTaskTag(short, short), java.util.concurrent.ForkJoinTask#completeExceptionally(java.lang.Throwable), java.util.concurrent.ForkJoinTask#getForkJoinTaskTag(), java.util.concurrent.ForkJoinTask#getRawResult(), java.util.concurrent.ForkJoinTask#helpQuiesce(), java.util.concurrent.ForkJoinTask#inForkJoinPool(), java.util.concurrent.ForkJoinTask#isCompletedAbnormally(), java.util.concurrent.ForkJoinTask#isCompletedNormally(), java.util.concurrent.ForkJoinTask#quietlyComplete(), java.util.concurrent.ForkJoinTask#quietlyInvoke(), java.util.concurrent.ForkJoinTask#setForkJoinTaskTag(short), java.util.concurrent.ForkJoinTask#tryUnfork(), java.util.concurrent.ForkJoinTask#fork(), java.util.concurrent.ForkJoinTask#wait(), java.util.concurrent.ForkJoinTask#wait(long, int), java.util.concurrent.ForkJoinTask#wait(long), java.util.concurrent.ForkJoinTask#equals(java.lang.Object), java.util.concurrent.ForkJoinTask#toString(), java.util.concurrent.ForkJoinTask#hashCode(), java.util.concurrent.ForkJoinTask#getClass(), java.util.concurrent.ForkJoinTask#notify(), java.util.concurrent.ForkJoinTask#notifyAll() |
Stores the child workers
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().
child
- The child taskWaits for and returns the results of the child tasks.
Copyright © 2008–2014 Václav Pech. All Rights Reserved.