次の方法で共有


ExecutorCompletionService クラス

定義

指定されたタスクを実行するために使用する Executor ACompletionService

[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
属性
実装

注釈

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

<b>使用例</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 ドキュメントjava.util.concurrent.ExecutorCompletionService

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

ExecutorCompletionService(IExecutor)

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

ExecutorCompletionService(IExecutor, IBlockingQueue)

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

ExecutorCompletionService(IntPtr, JniHandleOwnership)

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

プロパティ

Class

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

(継承元 Object)
Handle

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

(継承元 Object)
JniIdentityHashCode

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
JniPeerMembers

指定されたタスクを実行するために使用する Executor ACompletionService

PeerReference

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
ThresholdClass

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

ThresholdType

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

メソッド

Clone()

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

(継承元 Object)
Dispose()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
Dispose(Boolean)

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
Equals(Object)

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

(継承元 Object)
GetHashCode()

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

(継承元 Object)
JavaFinalize()

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

(継承元 Object)
Notify()

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

(継承元 Object)
NotifyAll()

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

(継承元 Object)
Poll()

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

Poll(Int64, TimeUnit)

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

PollAsync()

指定されたタスクを実行するために使用する Executor ACompletionService

PollAsync(Int64, TimeUnit)

指定されたタスクを実行するために使用する Executor ACompletionService

SetHandle(IntPtr, JniHandleOwnership)

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

(継承元 Object)
Submit(ICallable)

指定されたタスクを実行するために使用する Executor ACompletionService

Submit(IRunnable, Object)

指定されたタスクを実行するために使用する Executor ACompletionService

Take()

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

TakeAsync()

指定されたタスクを実行するために使用する Executor ACompletionService

ToArray<T>()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
ToString()

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

(継承元 Object)
UnregisterFromRuntime()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
Wait()

現在のスレッドが目覚めるまで待機させます。通常<は、通知<>/em> または <em>割り込み/em> を受け<取ります。

(継承元 Object)
Wait(Int64)

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

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

現在のスレッドが目覚めるまで待機します。通常<><は、通知/em> または <em>中断</em> によって、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

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

IJavaPeerable.Disposed()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
IJavaPeerable.Finalized()

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)
IJavaPeerable.JniManagedPeerState

指定されたタスクを実行するために使用する Executor ACompletionService

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

指定されたタスクを実行するために使用する Executor ACompletionService

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

指定されたタスクを実行するために使用する Executor ACompletionService

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

指定されたタスクを実行するために使用する Executor ACompletionService

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

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

JavaCast<TResult>(IJavaObject)

指定されたタスクを実行するために使用する Executor ACompletionService

GetJniTypeName(IJavaPeerable)

指定されたタスクを実行するために使用する Executor ACompletionService

適用対象