java.lang.Object
java.util.concurrent.FutureTask<V>
- 型パラメータ:
- V- このFutureTaskの- getメソッドで返される結果型
- すべての実装されたインタフェース:
- Runnable,- Future<V>,- RunnableFuture<V>
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を作成します。
- 
メソッドのサマリー修飾子と型メソッド説明booleancancel(boolean mayInterruptIfRunning) このタスクの実行の取消しを試みます。protected voiddone()このタスクの状態が(正常に、または取消しによって)isDoneに切り替わるときに呼び出されるprotectedメソッドです。get()必要に応じて計算が完了するまで待機し、その後、計算結果を取得します。必要に応じて、最大で指定された時間、計算が完了するまで待機し、その後、計算結果が利用可能な場合は結果を取得します。booleanこのタスクが正常に完了する前に取り消された場合はtrueを返します。booleanisDone()このタスクが完了した場合はtrueを返します。voidrun()取り消されていなければ、このFutureに計算結果を設定します。protected boolean結果を設定せずに計算を実行し、このfutureを初期状態にリセットします。計算時に例外が発生した場合または計算が取り消された場合は失敗します。protected voidこのfutureが設定済みの場合または取り消された場合を除き、このfutureの結果に指定された値を設定します。protected voidこのFutureが設定済みの場合または取り消された場合を除き、このFutureがExecutionExceptionと、その理由として指定されたスロー可能オブジェクトを報告するようになります。toString()このFutureTaskの文字列表現を返します。
- 
コンストラクタの詳細- 
FutureTask指定されたCallableを実行時に実行するFutureTaskを作成します。- パラメータ:
- callable- 呼出し可能なタスク
- throws:
- NullPointerException- callableがnullの場合
 
- 
FutureTask指定されたRunnableを実行時に実行し、かつ正常に完了すると指定された結果をgetで返すFutureTaskを作成します。- パラメータ:
- runnable- 実行可能なタスク
- result- 正常に完了したときに返す結果。 特定の結果が必要ない場合は、- Future<?> f = new FutureTask<Void>(runnable, null)という形式の構築の使用を考慮すること
- throws:
- NullPointerException- runnableがnullの場合
 
 
- 
- 
メソッドの詳細- 
isCancelledpublic boolean isCancelled()次のインタフェースからコピーされた説明:Futureこのタスクが正常に完了する前に取り消された場合はtrueを返します。- 定義:
- isCancelled、インタフェース- Future<V>
- 戻り値:
- このタスクが完了する前に取り消された場合はtrue
 
- 
isDonepublic boolean isDone()次のインタフェースからコピーされた説明:Futureこのタスクが完了した場合はtrueを返します。 完了の理由は、正常終了、例外、取り消しなどがありますが、いずれの場合もこのメソッドはtrueを返します。
- 
cancelpublic boolean cancel(boolean mayInterruptIfRunning) 次のインタフェースからコピーされた説明:Futureこのタスクの実行の取消しを試みます。 このメソッドは、タスクが既に完了または取消されている場合や、他の理由で取消されない場合には効果がありません。 それ以外の場合、cancelがコールされたときにこのタスクが開始されていない場合、このタスクは実行されません。 タスクがすでに開始されている場合、mayInterruptIfRunningパラメータにより、このタスク(実装によって既知の場合)を実行しているスレッドがタスクを停止しようとして中断されるかどうかが決まります。このメソッドからの戻り値は、必ずしもタスクが取り消されたかどうかを示すわけではありません。 Future.isCancelled()を使用します。
- 
getpublic V get() throws InterruptedException, ExecutionException次のインタフェースからコピーされた説明:Future必要に応じて計算が完了するまで待機し、その後、計算結果を取得します。- 定義:
- get、インタフェース- Future<V>
- 戻り値:
- 計算結果
- throws:
- CancellationException- 計算が取り消された場合
- InterruptedException- 待機中に現在のスレッドで割込みが発生した場合
- ExecutionException- 計算で例外がスローされた場合
 
- 
getpublic V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException 次のインタフェースからコピーされた説明:Future必要に応じて、最大で指定された時間、計算が完了するまで待機し、その後、計算結果が利用可能な場合は結果を取得します。- 定義:
- get、インタフェース- Future<V>
- パラメータ:
- timeout- 待機する最長時間
- unit- timeout引数の時間単位
- 戻り値:
- 計算結果
- throws:
- CancellationException- 計算が取り消された場合
- InterruptedException- 待機中に現在のスレッドで割込みが発生した場合
- ExecutionException- 計算で例外がスローされた場合
- TimeoutException- 待機がタイム・アウトになった場合
 
- 
doneprotected void done()このタスクの状態が(正常に、または取消しによって)isDoneに切り替わるときに呼び出されるprotectedメソッドです。 デフォルト実装は何も実行しません。 サブクラスは、このメソッドをオーバーライドして、完了コールバックの呼び出しまたは登録の処理を実行することがあります。 このメソッドの実装内部でステータスを照会して、このタスクが取り消されていないかどうかを確認することができます。
- 
setprotected void set(V v) このfutureが設定済みの場合または取り消された場合を除き、このfutureの結果に指定された値を設定します。このメソッドは、計算の正常完了時に run()メソッドで内部的に呼び出されます。- パラメータ:
- v- 値
 
- 
setExceptionprotected void setException(Throwable t) このFutureが設定済みの場合または取り消された場合を除き、このFutureがExecutionExceptionと、その理由として指定されたスロー可能オブジェクトを報告するようになります。このメソッドは、計算の失敗時に run()メソッドで内部的に呼び出されます。- パラメータ:
- t- 失敗の原因
 
- 
runpublic void run()次のインタフェースからコピーされた説明:RunnableFuture取り消されていなければ、このFutureに計算結果を設定します。- 定義:
- run、インタフェース- Runnable
- 定義:
- run、インタフェース- RunnableFuture<V>
- 関連項目:
 
- 
runAndResetprotected boolean runAndReset()結果を設定せずに計算を実行し、このfutureを初期状態にリセットします。計算時に例外が発生した場合または計算が取り消された場合は失敗します。 本来、複数回実行されるタスクとともに使用するために設計されています。- 戻り値:
- 実行とリセットに成功した場合はtrue
 
- 
toStringpublic String toString()このFutureTaskの文字列表現を返します。
 
-