 java.lang.Object

 java.util.concurrent.ForkJoinTask<V>

 java.util.concurrent.RecursiveTask<V>

 All Implemented Interfaces:
Serializable
,Future<V>
public abstract class RecursiveTask<V> extends ForkJoinTask<V>
A recursive resultbearingForkJoinTask
.For a classic example, here is a task computing Fibonacci numbers:
class Fibonacci extends RecursiveTask<Integer> { final int n; Fibonacci(int n) { this.n = n; } protected Integer compute() { if (n <= 1) return n; Fibonacci f1 = new Fibonacci(n  1); f1.fork(); Fibonacci f2 = new Fibonacci(n  2); return f2.compute() + f1.join(); } }
 Since:
 1.7
 Author:
 Doug Lea
 See Also:
 Serialized Form


Constructor Summary
Constructors Constructor Description RecursiveTask()

Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract V
compute()
The main computation performed by this task.protected boolean
exec()
Implements execution conventions for RecursiveTask.V
getRawResult()
Returns the result that would be returned byForkJoinTask.join()
, even if this task completed abnormally, ornull
if this task is not known to have been completed.protected void
setRawResult(V value)
Forces the given value to be returned as a result.
Methods inherited from class java.util.concurrent.ForkJoinTask
adapt, adapt, adapt, cancel, compareAndSetForkJoinTaskTag, complete, completeExceptionally, fork, get, get, getException, getForkJoinTaskTag, getPool, getQueuedTaskCount, getSurplusQueuedTaskCount, helpQuiesce, inForkJoinPool, invoke, invokeAll, invokeAll, invokeAll, isCancelled, isCompletedAbnormally, isCompletedNormally, isDone, join, peekNextLocalTask, pollNextLocalTask, pollSubmission, pollTask, quietlyComplete, quietlyInvoke, quietlyJoin, reinitialize, setForkJoinTaskTag, tryUnfork




Method Detail

compute
protected abstract V compute()
The main computation performed by this task. Returns:
 the result of the computation

getRawResult
public final V getRawResult()
Description copied from class:ForkJoinTask
Returns the result that would be returned byForkJoinTask.join()
, even if this task completed abnormally, ornull
if this task is not known to have been completed. This method is designed to aid debugging, as well as to support extensions. Its use in any other context is discouraged. Specified by:
getRawResult
in classForkJoinTask<V>
 Returns:
 the result, or
null
if not completed

setRawResult
protected final void setRawResult(V value)
Description copied from class:ForkJoinTask
Forces the given value to be returned as a result. This method is designed to support extensions, and should not in general be called otherwise. Specified by:
setRawResult
in classForkJoinTask<V>
 Parameters:
value
 the value

exec
protected final boolean exec()
Implements execution conventions for RecursiveTask. Specified by:
exec
in classForkJoinTask<V>
 Returns:
true
if this task is known to have completed normally

