java.lang.Object
java.util.concurrent.ForkJoinTask<V>
java.util.concurrent.RecursiveTask<V>
- 型パラメータ:
- V- タスクの結果のタイプ
- すべての実装されたインタフェース:
- Serializable,- Future<V>
public abstract class RecursiveTask<V> extends ForkJoinTask<V>
結果を生成する再帰的な
ForkJoinTask。
 たとえば、係数を計算するためのタスク・ベースのプログラムを次に示します:
 
 import java.util.concurrent.RecursiveTask;
 import java.math.BigInteger;
 public class Factorial {
   static class FactorialTask extends RecursiveTask<BigInteger> {
     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 <= 1) ? BigInteger.ONE : new FactorialTask(1, n).invoke();
   }
   public static void main(String[] args) {
     System.out.println(factorial(Integer.parseInt(args[0])));
   }
 }- 導入されたバージョン:
- 1.7
- 関連項目:
- 
ネストされたクラスのサマリーインタフェースjava.util.concurrent.Futureで宣言されたネストされたクラス/インタフェースFuture.State
- 
コンストラクタのサマリーコンストラクタ
- 
メソッドのサマリー修飾子と型メソッド説明protected abstract Vcompute()このタスクによって実行される主な計算です。protected final booleanexec()RecursiveTaskのための実行規則を実装します。final Vこのタスクが異常な状態で実行された場合であっても、ForkJoinTask.join()によって返される結果を返します。このタスクが実行されたかどうかが不明の場合は、nullです。protected final voidsetRawResult(V value) 指定された値を結果として返すことを強制します。クラスjava.util.concurrent.ForkJoinTaskで宣言されたメソッドadapt, adapt, adapt, adaptInterruptible, adaptInterruptible, adaptInterruptible, 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, quietlyJoin, quietlyJoinUninterruptibly, reinitialize, setForkJoinTaskTag, tryUnforkクラスjava.lang.Objectで宣言されたメソッドclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitインタフェースjava.util.concurrent.Futureで宣言されたメソッドexceptionNow, resultNow, state
- 
コンストラクタの詳細- 
RecursiveTaskpublic RecursiveTask()サブクラスが呼び出すためのコンストラクタ。
 
- 
- 
メソッドの詳細- 
compute
- 
getRawResultpublic final V getRawResult()次のクラスからコピーされた説明:ForkJoinTaskこのタスクが異常な状態で実行された場合であっても、ForkJoinTask.join()によって返される結果を返します。このタスクが実行されたかどうかが不明の場合は、nullです。 このメソッドは、デバッグを支援したり、拡張機能をサポートするためのものです。 これをほかのコンテキストで使用することは推奨されていません。- 定義:
- getRawResult、クラス- ForkJoinTask<V>
- 戻り値:
- 結果あるいはnull(完了しない場合)
 
- 
setRawResultprotected final void setRawResult(V value) 次のクラスからコピーされた説明:ForkJoinTask指定された値を結果として返すことを強制します。 このメソッドは拡張機能をサポートするためのものであるため、それ以外の一般的な場合では呼び出してはいけません。- 定義:
- setRawResult、クラス- ForkJoinTask<V>
- パラメータ:
- value- 値
 
- 
execprotected final boolean exec()RecursiveTaskのための実行規則を実装します。- 定義:
- exec、クラス- ForkJoinTask<V>
- 戻り値:
- このタスクが正常に完了したことがわかっている場合はtrue
 
 
-