JavaTM 2 Platform
Standard Ed. 5.0

java.util.concurrent
インタフェース CompletionService<V>

既知の実装クラスの一覧:
ExecutorCompletionService

public interface CompletionService<V>

新しい非同期タスクの生成を、完了済みタスクの結果の消費から分離するサービス。プロデューサは、実行用のタスクに対して submit を実行します。コンシューマは、完了済みのタスクに take を実行して、結果を完了した順に処理します。たとえば、CompletionService を使用して、非同期入出力を管理できます。この場合、読み取りを実行するタスクはプログラムまたはシステムの一部に渡され、読み取りの完了時にプログラムの別の部分で処理されます。処理の順序は、要求された順序とは異なる場合があります。

一般に、CompletionService では、タスクの実際の実行は別個の Executor で行われます。この場合、CompletionService は、内部の完了キューのみを管理します。ExecutorCompletionService クラスは、この手法の実装を提供します。


メソッドの概要
 Future<V> poll()
          次の完了済みタスクを表す Future を取得および削除します。
 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 を取得および削除します。
 

メソッドの詳細

submit

Future<V> submit(Callable<V> task)
値を返す実行用タスクを送信して、保留状態のタスク結果を表す Future を返します。完了時に、このタスクを取り出すかポーリングできます。

パラメータ:
task - 送信するタスク
戻り値:
タスクの保留完了を表す Future
例外:
RejectedExecutionException - タスクの実行をスケジュールできない場合
NullPointerException - タスクが null の場合

submit

Future<V> submit(Runnable task,
                 V result)
実行する Runnable タスクを送信し、そのタスクを表す Future を返します。完了時に、このタスクを取り出すかポーリングできます。

パラメータ:
task - 送信するタスク
result - 正常に完了した場合に返す結果
戻り値:
タスクの保留完了を表す Future。その get() メソッドは、完了時に指定された結果値を返す
例外:
RejectedExecutionException - タスクの実行をスケジュールできない場合
NullPointerException - タスクが null の場合

take

Future<V> take()
               throws InterruptedException
次の完了済みタスクを表す Future を取得および削除します。何も存在しない場合は待機します。

戻り値:
次の完了済みタスクを表す Future
例外:
InterruptedException - 待機中に割り込みが発生した場合

poll

Future<V> poll()
次の完了済みタスクを表す Future を取得および削除します。何も存在しない場合は null を返します。

戻り値:
次の完了済みタスクを表す Future。何も存在しない場合は null

poll

Future<V> poll(long timeout,
               TimeUnit unit)
               throws InterruptedException
次の完了済みタスクを表す Future を取得および削除します。何も存在しない場合、必要に応じて指定された待機時間まで待機します。

パラメータ:
timeout - 処理を中止するまでの待機時間。単位は unit
unit - timeout パラメータの解釈方法を指定する TimeUnit
戻り値:
次の完了済みタスクを表す Future。指定された待機時間が経過しても何も存在しない場合は null
例外:
InterruptedException - 待機中に割り込みが発生した場合

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。