ExecutorCompletionService クラス

定義

指定されたCompletionServiceを使用してタスクを実行するExecutor

[Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "V" })]
public class ExecutorCompletionService : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Util.Concurrent.ICompletionService
[<Android.Runtime.Register("java/util/concurrent/ExecutorCompletionService", DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "V" })>]
type ExecutorCompletionService = class
    inherit Object
    interface ICompletionService
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
ExecutorCompletionService
属性
実装

注釈

指定されたCompletionServiceを使用してタスクを実行するExecutor。 このクラスは、送信されたタスクが完了時に、 takeを使用してアクセス可能なキューに配置されるように配置します。 このクラスは、タスクのグループを処理する際の一時的な使用に適した軽量です。

<b>Usage Examples.</b>

特定の問題に対して一連のソルバーがあり、それぞれが何らかの型 Resultの値を返し、それらを同時に実行して、null 以外の値を返すそれぞれの結果を処理するとします use(Result r)。 これは次のように記述できます。

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException, ExecutionException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              solvers.forEach(cs::submit);
              for (int i = solvers.size(); i > 0; i--) {
                Result r = cs.take().get();
                if (r != null)
                  use(r);
              }
            }}

代わりに、一連のタスクの最初の null 以外の結果を使用し、例外が発生した場合は無視し、最初のタスクの準備ができたら他のすべてのタスクを取り消したいとします。

{@code
            void solve(Executor e,
                       Collection<Callable<Result>> solvers)
                throws InterruptedException {
              CompletionService<Result> cs
                  = new ExecutorCompletionService<>(e);
              int n = solvers.size();
              List<Future<Result>> futures = new ArrayList<>(n);
              Result result = null;
              try {
                solvers.forEach(solver -> futures.add(cs.submit(solver)));
                for (int i = n; i > 0; i--) {
                  try {
                    Result r = cs.take().get();
                    if (r != null) {
                      result = r;
                      break;
                    }
                  } catch (ExecutionException ignore) {}
                }
              } finally {
                futures.forEach(future -> future.cancel(true));
              }

              if (result != null)
                use(result);
            }}

1\.5 で追加されました。

java.util.concurrent.ExecutorCompletionServiceの Java ドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

名前 説明
ExecutorCompletionService(IExecutor, IBlockingQueue)

基本タスク実行用に指定された Executor を使用し、指定されたキューを完了キューとして使用して ExecutorCompletionService を作成します。

ExecutorCompletionService(IExecutor)

基本タスクの実行に指定された Executor と、完了キューとして LinkedBlockingQueue を使用して ExecutorCompletionService を作成します。

ExecutorCompletionService(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
JniIdentityHashCode

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
JniPeerMembers

指定されたCompletionServiceを使用してタスクを実行するExecutor

PeerReference

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Dispose()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
Dispose(Boolean)

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
Poll()

次に完了したタスクを表す Future を取得および削除します。存在しない場合は null します。

Poll(Int64, TimeUnit)

次に完了したタスクを表す Future を取得および削除し、必要に応じて、指定された待機時間まで待機します (まだ存在しない場合)。

PollAsync()

指定されたCompletionServiceを使用してタスクを実行するExecutor

PollAsync(Int64, TimeUnit)

指定されたCompletionServiceを使用してタスクを実行するExecutor

SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
Submit(ICallable)

指定されたCompletionServiceを使用してタスクを実行するExecutor

Submit(IRunnable, Object)

指定されたCompletionServiceを使用してタスクを実行するExecutor

Take()

次に完了したタスクを表す Future を取得および削除し、まだ存在しない場合は待機します。

TakeAsync()

指定されたCompletionServiceを使用してタスクを実行するExecutor

ToArray<T>()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnregisterFromRuntime()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.Finalized()

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.JniManagedPeerState

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

指定されたCompletionServiceを使用してタスクを実行するExecutor

(継承元 Object)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

指定されたCompletionServiceを使用してタスクを実行するExecutor

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象