RecursiveTask クラス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
再帰的な結果を持つ ForkJoinTask
。
[Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public abstract class RecursiveTask : Java.Util.Concurrent.ForkJoinTask
[<Android.Runtime.Register("java/util/concurrent/RecursiveTask", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type RecursiveTask = class
inherit ForkJoinTask
- 継承
- 属性
注釈
再帰的な結果を持つ ForkJoinTask
。
従来の例では、フィボナッチ数を計算するタスクを次に示します。
{@code
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();
}
}}
ただし、フィボナッチ関数を計算するダムな方法であるだけでなく (実際には使用する単純な高速線形アルゴリズムがあります)、最小のサブタスクが小さすぎて分割に値しないため、パフォーマンスが低下する可能性があります。 代わりに、ほぼすべてのフォーク/結合アプリケーションの場合と同様に、分割するのではなく、常に順番に解決する最小粒度サイズ (ここでは 10 など) を選択します。
1.7 で追加されました。
の Java ドキュメント java.util.concurrent.RecursiveTask
。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
コンストラクター
RecursiveTask() |
呼び出すサブクラスのコンストラクター。 |
RecursiveTask(IntPtr, JniHandleOwnership) |
JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。 |
プロパティ
Class |
この |
Exception |
基本計算によってスローされた例外を返します |
ForkJoinTaskTag |
このタスクのタグを返します。 (継承元 ForkJoinTask) |
Handle |
基になる Android インスタンスへのハンドル。 (継承元 Object) |
IsCancelled |
このタスクが |
IsCompletedAbnormally |
このタスクが例外を |
IsCompletedNormally |
このタスクが例外を |
IsDone |
このタスクが完了した場合は を |
JniIdentityHashCode |
再帰的な結果を持つ |
JniPeerMembers |
再帰的な結果を持つ |
PeerReference |
再帰的な結果を持つ |
RawRawResult |
によって返される Join()結果を返します。このタスクが異常に完了した場合や |
ThresholdClass |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
ThresholdType |
この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。 |
メソッド
Cancel(Boolean) |
このタスクの実行を取り消そうとします。 (継承元 ForkJoinTask) |
Clone() |
このオブジェクトのコピーを作成して返します。 (継承元 Object) |
CompareAndSetForkJoinTaskTag(Int16, Int16) |
このタスクのタグ値をアトミックに条件付きで設定します。 (継承元 ForkJoinTask) |
Complete(Object) |
このタスクを完了し、まだ中止または取り消されていない場合は、後続の および 関連する操作の呼び出しの結果として、指定された値を |
CompleteExceptionally(Throwable) |
このタスクを異常に完了し、まだ中止または取り消されていない場合は、指定された例外と関連する操作を |
Compute() |
このタスクによって実行されるメイン計算。 |
Dispose() |
再帰的な結果を持つ |
Dispose(Boolean) |
再帰的な結果を持つ |
Equals(Object) |
他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。 (継承元 Object) |
Exec() |
RecursiveTask の実行規則を実装します。 |
Fork() |
現在のタスクが実行されているプールでこのタスクを非同期に実行するように配置します(該当する場合は )。 そうでない |
Get() |
計算が完了するまで必要に応じて 待機し、その結果を取得します。 (継承元 ForkJoinTask) |
Get(Int64, TimeUnit) |
計算が完了するまで、必要に応じて最大で指定された時間待機し、その結果 (使用可能な場合) を取得します。 (継承元 ForkJoinTask) |
GetHashCode() |
オブジェクトのハッシュ コード値を返します。 (継承元 Object) |
Invoke() |
このタスクの実行を開始し、必要に応じて完了を待機し、その結果を返すか、 (オフ) |
JavaFinalize() |
ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。 (継承元 Object) |
Join() |
計算が完了したときに計算の結果 #isDone 返します。 (継承元 ForkJoinTask) |
Notify() |
このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。 (継承元 Object) |
NotifyAll() |
このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。 (継承元 Object) |
QuietlyComplete() |
値を設定せずにこのタスクを正常に完了します。 (継承元 ForkJoinTask) |
QuietlyInvoke() |
このタスクの実行を開始し、結果を返したり例外をスローしたりすることなく、必要に応じて完了を待機します。 (継承元 ForkJoinTask) |
QuietlyJoin() |
結果を返したり、例外をスローしたりせずに、このタスクを結合します。 (継承元 ForkJoinTask) |
Reinitialize() |
このタスクの内部簿記状態をリセットし、後続 |
SetForkJoinTaskTag(Int16) |
このタスクのタグ値をアトミックに設定し、古い値を返します。 (継承元 ForkJoinTask) |
SetHandle(IntPtr, JniHandleOwnership) |
Handle プロパティを設定します。 (継承元 Object) |
SetRawResult(Object) |
指定した値を強制的に結果として返します。 (継承元 ForkJoinTask) |
ToArray<T>() |
再帰的な結果を持つ |
ToString() |
オブジェクトの文字列形式を返します。 (継承元 Object) |
TryUnfork() |
このタスクの実行スケジュール解除を試みます。 (継承元 ForkJoinTask) |
UnregisterFromRuntime() |
再帰的な結果を持つ |
Wait() |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。 (継承元 Object) |
Wait(Int64) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
Wait(Int64, Int32) |
現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。 (継承元 Object) |
明示的なインターフェイスの実装
IJavaPeerable.Disposed() |
再帰的な結果を持つ |
IJavaPeerable.DisposeUnlessReferenced() |
再帰的な結果を持つ |
IJavaPeerable.Finalized() |
再帰的な結果を持つ |
IJavaPeerable.JniManagedPeerState |
再帰的な結果を持つ |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
再帰的な結果を持つ |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
再帰的な結果を持つ |
IJavaPeerable.SetPeerReference(JniObjectReference) |
再帰的な結果を持つ |
拡張メソッド
JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
JavaCast<TResult>(IJavaObject) |
再帰的な結果を持つ |
GetJniTypeName(IJavaPeerable) |
再帰的な結果を持つ |
GetAsync(IFuture) |
再帰的な結果を持つ |
GetAsync(IFuture, Int64, TimeUnit) |
再帰的な結果を持つ |