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