- java.lang.Object
-
- java.util.concurrent.FutureTask<V>
-
- 型パラメータ:
V- このFutureTaskのgetメソッドで返される結果型
- すべての実装されたインタフェース:
Runnable,Future<V>,RunnableFuture<V>
- 直系の既知のサブクラス:
Task
public class FutureTask<V> extends Object implements RunnableFuture<V>
取消し可能な非同期計算です。 このクラスはFutureのベース実装を提供し、計算の開始と取消し、計算が完了したかどうかの問合せ、計算結果の取得などを行うメソッドを持っています。 結果は、計算の完了時にのみ取得できます。計算がまだ完了していないうちはgetメソッドがブロックします。 計算が完了すると、その計算の再開または取消しはできません(その計算がrunAndReset()を使用して呼び出される場合を除く)。FutureTaskを使用すると、CallableまたはRunnableオブジェクトをラップできます。FutureTaskはRunnableを実装するので、FutureTaskをExecutorに送信して実行できます。スタンドアロン・クラスとして機能するだけでなく、このクラスでは、カスタマイズしたタスク・クラスの作成時に便利な
protected機能を提供します。- 導入されたバージョン:
- 1.5
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 FutureTask(Runnable runnable, V result)指定されたRunnableを実行時に実行し、かつ正常に完了すると指定された結果をgetで返すFutureTaskを作成します。FutureTask(Callable<V> callable)指定されたCallableを実行時に実行するFutureTaskを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 protected voiddone()このタスクの状態が(正常に、または取消しによって)isDoneに切り替わるときに呼び出されるprotectedメソッドです。Vget()必要に応じて計算が完了するまで待機し、その後、計算結果を取得します。Vget(long timeout, TimeUnit unit)必要に応じて、最大で指定された時間、計算が完了するまで待機し、その後、計算結果が利用可能な場合は結果を取得します。protected booleanrunAndReset()結果を設定せずに計算を実行し、このfutureを初期状態にリセットします。計算時に例外が発生した場合または計算が取り消された場合は失敗します。protected voidset(V v)このfutureが設定済みの場合または取り消された場合を除き、このfutureの結果に指定された値を設定します。protected voidsetException(Throwable t)このfutureが設定済みの場合または取り消された場合を除き、このfutureがExecutionExceptionと、その理由として指定されたスロー可能オブジェクトを報告するようになります。StringtoString()このFutureTaskの文字列表現を返します。-
インタフェース java.util.concurrent.Futureで宣言されたメソッド
cancel, isCancelled, isDone
-
クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、wait、wait、wait
-
インタフェース java.util.concurrent.RunnableFutureで宣言されたメソッド
run
-
-
-
-
コンストラクタの詳細
-
FutureTask
public FutureTask(Callable<V> callable)
指定されたCallableを実行時に実行するFutureTaskを作成します。- パラメータ:
callable- 呼出し可能なタスク- 例外:
NullPointerException- callableがnullの場合
-
FutureTask
public FutureTask(Runnable runnable, V result)
指定されたRunnableを実行時に実行し、かつ正常に完了すると指定された結果をgetで返すFutureTaskを作成します。- パラメータ:
runnable- 実行可能なタスクresult- 正常に完了したときに返す結果。 特定の結果が必要ない場合は、Future<?> f = new FutureTask<Void>(runnable, null)という形式の構築の使用を考慮すること- 例外:
NullPointerException- runnableがnullの場合
-
-
メソッドの詳細
-
get
public V get() throws InterruptedException, ExecutionException
次のインタフェースからコピーされた説明:Future必要に応じて計算が完了するまで待機し、その後、計算結果を取得します。- 定義:
get、インタフェース:Future<V>- 戻り値:
- 計算結果
- 例外:
CancellationException- 計算が取り消された場合InterruptedException- 待機中に現在のスレッドで割込みが発生した場合ExecutionException- 計算で例外がスローされた場合
-
get
public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
次のインタフェースからコピーされた説明:Future必要に応じて、最大で指定された時間、計算が完了するまで待機し、その後、計算結果が利用可能な場合は結果を取得します。- 定義:
get、インタフェース:Future<V>- パラメータ:
timeout- 待機する最長時間unit- timeout引数の時間単位- 戻り値:
- 計算結果
- 例外:
CancellationException- 計算が取り消された場合InterruptedException- 待機中に現在のスレッドで割込みが発生した場合ExecutionException- 計算で例外がスローされた場合TimeoutException- 待機がタイム・アウトになった場合
-
done
protected void done()
このタスクの状態が(正常に、または取消しによって)isDoneに切り替わるときに呼び出されるprotectedメソッドです。 デフォルト実装は何も実行しません。 サブクラスは、このメソッドをオーバーライドして、完了コールバックの呼び出しまたは登録の処理を実行することがあります。 このメソッドの実装内部でステータスを照会して、このタスクが取り消されていないかどうかを確認することができます。
-
set
protected void set(V v)
このfutureが設定済みの場合または取り消された場合を除き、このfutureの結果に指定された値を設定します。このメソッドは、計算の正常終了時に
RunnableFuture.run()メソッドによって内部的に呼び出されます。- パラメータ:
v- 値
-
setException
protected void setException(Throwable t)
このfutureが設定済みの場合または取り消された場合を除き、このfutureがExecutionExceptionと、その理由として指定されたスロー可能オブジェクトを報告するようになります。このメソッドは、計算が失敗したときに
RunnableFuture.run()メソッドによって内部的に呼び出されます。- パラメータ:
t- 失敗の原因
-
runAndReset
protected boolean runAndReset()
結果を設定せずに計算を実行し、このfutureを初期状態にリセットします。計算時に例外が発生した場合または計算が取り消された場合は失敗します。 本来、複数回実行されるタスクとともに使用するために設計されています。- 戻り値:
- 実行とリセットに成功した場合は
true
-
-