Added in API level 21

RecursiveTask

abstract class RecursiveTask<V : Any!> : ForkJoinTask<V>
kotlin.Any
   ↳ java.util.concurrent.ForkJoinTask<V>
   ↳ java.util.concurrent.RecursiveTask

A recursive result-bearing ForkJoinTask.

For example, here is a task-based program for computing Factorials:

<code>import java.util.concurrent.RecursiveTask;  import java.math.BigInteger;  public class Factorial {  static class FactorialTask extends RecursiveTask&lt;BigInteger&gt; {  private final int from, to;  FactorialTask(int from, int to) { this.from = from; this.to = to; }  protected BigInteger compute() {  int range = to - from;  if (range == 0) { // base case  return BigInteger.valueOf(from);  } else if (range == 1) { // too small to parallelize  return BigInteger.valueOf(from).multiply(BigInteger.valueOf(to));  } else { // split in half  int mid = from + range / 2;  FactorialTask leftTask = new FactorialTask(from, mid);  leftTask.fork(); // perform about half the work locally  return new FactorialTask(mid + 1, to).compute()  .multiply(leftTask.join());  }  }  }  static BigInteger factorial(int n) { // uses ForkJoinPool.commonPool()  return (n &lt;= 1) ? BigInteger.ONE : new FactorialTask(1, n).invoke();  }  public static void main(String[] args) {  System.out.println(factorial(Integer.parseInt(args[0])));  }  }</code>

Summary

Public constructors

Constructor for subclasses to call.

Public methods
V

Protected methods
abstract V

The main computation performed by this task.

Boolean

Implements execution conventions for RecursiveTask.

Unit
setRawResult(value: V)

Inherited functions

Public constructors

RecursiveTask

Added in API level 21
RecursiveTask()

Constructor for subclasses to call.

Public methods

getRawResult

Added in API level 21
fun getRawResult(): V
Return
V the result, or null if not completed

Protected methods

compute

Added in API level 21
protected abstract fun compute(): V

The main computation performed by this task.

Return
V the result of the computation

exec

Added in API level 21
protected fun exec(): Boolean

Implements execution conventions for RecursiveTask.

Return
Boolean true if this task is known to have completed normally

setRawResult

Added in API level 21
protected fun setRawResult(value: V): Unit
Parameters
value V: the value