public interface CompletionService<V>
submit
を実行します。コンシューマは、完了済みのタスクに対してtake
を実行し、結果を完了した順に処理します。たとえば、CompletionService
を使用して、非同期入出力を管理できます。この場合、読取りを実行するタスクはプログラムまたはシステムの一部に送信され、読取りの完了時にプログラムの別の部分で処理されます。処理の順序は、要求された順序とは異なる場合があります。
CompletionService
は通常、これらのタスクを実際に実行するために個別のExecutor
を使用します。この場合、CompletionService
は内部の完了キューのみを管理します。ExecutorCompletionService
クラスは、この手法の実装を提供します。
メモリー整合性効果: タスクをCompletionService
に送信する前のスレッド内のアクションは、そのタスクによって実行されるアクションの前に発生し、一方それは、対応するtake()
からの正常な復帰のあとのアクションよりも前に発生します。
修飾子と型 | メソッドと説明 |
---|---|
Future<V> |
poll()
次の完了済みタスクを表すFutureを取得して削除します。何も存在しない場合は
null を返します。 |
Future<V> |
poll(long timeout, TimeUnit unit)
次の完了済みタスクを表すFutureを取得して削除します。何も存在しない場合は、必要に応じて指定された待機時間まで待機します。
|
Future<V> |
submit(Callable<V> task)
値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。
|
Future<V> |
submit(Runnable task, V result)
実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。
|
Future<V> |
take()
次の完了済みタスクを表すFutureを取得して削除します。何も存在しない場合は待機します。
|
Future<V> submit(Callable<V> task)
task
- 送信するタスクRejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合Future<V> submit(Runnable task, V result)
task
- 送信するタスクresult
- 正常に完了した場合に返す結果get()
メソッドは、完了時に指定された結果値を返しますRejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合Future<V> take() throws InterruptedException
InterruptedException
- 待機中に割込みが発生した場合Future<V> poll()
null
を返します。null
Future<V> poll(long timeout, TimeUnit unit) throws InterruptedException
timeout
- 処理を中止するまでの待機時間。単位はunit
unit
- timeout
パラメータの解釈方法を決定するTimeUnit
null
InterruptedException
- 待機中に割込みが発生した場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.