java.lang.Object
java.util.concurrent.AbstractExecutorService
- すべての実装されたインタフェース:
AutoCloseable
,Executor
,ExecutorService
- 直系の既知のサブクラス:
ForkJoinPool
,ThreadPoolExecutor
public abstract class AbstractExecutorService extends Object implements ExecutorService
ExecutorService
実行メソッドのデフォルト実装を提供します。 このクラスは、このパッケージで提供される
FutureTask
クラスがデフォルトであるnewTaskFor
によって返されるRunnableFuture
を使用して、submit
、invokeAny、および
invokeAllメソッドを実装します。 たとえば、submit(Runnable)
の実装によって関連付けられたRunnableFuture
が作成され、これが実行されて結果が返されます。 サブクラスでは、FutureTask
以外のRunnableFuture
実装を返すようにnewTaskFor
メソッドをオーバーライドできます。
拡張機能の例 ここでは、デフォルトのFutureTaskの代わりに
CustomTaskクラスを使用するためにThreadPoolExecutor
をカスタマイズするクラスの概略を示します。
public class CustomThreadPoolExecutor extends ThreadPoolExecutor {
static class CustomTask<V> implements RunnableFuture<V> { ... }
protected <V> RunnableFuture<V> newTaskFor(Callable<V> c) {
return new CustomTask<V>(c);
}
protected <V> RunnableFuture<V> newTaskFor(Runnable r, V v) {
return new CustomTask<V>(r, v);
}
// ... add constructors, etc.
}
- 導入されたバージョン:
- 1.5
-
コンストラクタのサマリー
-
メソッドのサマリー
修飾子と型メソッド説明invokeAll
(Collection<? extends Callable<T>> tasks) 指定されたタスクを実行し、すべて完了すると、ステータスと結果を含むFutureのリストを返します。invokeAll
(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) 指定されたタスクを実行し、すべてが完了するか時間切れになるか、そのいずれかが最初に発生した時点で、ステータスと結果を含むFutureのリストを返します。<T> T
invokeAny
(Collection<? extends Callable<T>> tasks) 指定されたタスクを実行し、例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。<T> T
invokeAny
(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) 指定されたタスクを実行し、タイム・アウトが経過する前に例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。protected <T> RunnableFuture
<T> newTaskFor
(Runnable runnable, T value) 指定された実行可能タスクおよびデフォルト値のRunnableFuture
を返します。protected <T> RunnableFuture
<T> newTaskFor
(Callable<T> callable) 指定された呼出し可能タスクのRunnableFuture
を返します。Future
<?> 実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。<T> Future
<T> 実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。<T> Future
<T> 値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。クラスjava.lang.Objectで宣言されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
インタフェースjava.util.concurrent.ExecutorServiceで宣言されたメソッド
awaitTermination, close, isShutdown, isTerminated, shutdown, shutdownNow
-
コンストラクタの詳細
-
AbstractExecutorService
public AbstractExecutorService()サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value) 指定された実行可能タスクおよびデフォルト値のRunnableFuture
を返します。- 型パラメータ:
T
- 指定された値の型- パラメータ:
runnable
- ラップされる実行可能タスクvalue
- 返されるFutureのデフォルト値- 戻り値:
- 実行時に基本となる実行可能タスクを実行し、
Future
として、指定された値をその結果として生成し、基本となるタスクの取消しを提供するRunnableFuture
。 - 導入されたバージョン:
- 1.6
-
newTaskFor
protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable) 指定された呼出し可能タスクのRunnableFuture
を返します。- 型パラメータ:
T
- 呼出し可能タスクの結果の型- パラメータ:
callable
- ラップされる呼出し可能タスク- 戻り値:
- 実行時に基本となる呼出し可能タスクを呼び出し、
Future
として、呼出し可能タスクの結果をその結果として生成し、基本となるタスクの取消しを提供するRunnableFuture
。 - 導入されたバージョン:
- 1.6
-
submit
インタフェースからコピーされた説明:ExecutorService
実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。 Futureのget
メソッドは、正常に
完了した時点でnullを返します。- 定義:
submit
、インタフェースExecutorService
- パラメータ:
task
- 送信するタスク- 戻り値:
- タスクの保留完了を表すFuture
- 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合
-
submit
インタフェースからコピーされた説明:ExecutorService
実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。 Futureのget
メソッドは、正常に完了した時点で指定された結果を返します。- 定義:
submit
、インタフェースExecutorService
- 型パラメータ:
T
- 結果の型- パラメータ:
task
- 送信するタスクresult
- 返す結果- 戻り値:
- タスクの保留完了を表すFuture
- 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合
-
submit
インタフェースからコピーされた説明:ExecutorService
値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。 Futureのget
メソッドは、正常に完了した時点でタスクの結果を返します。タスクの待機をただちにブロックする場合は、
result = exec.submit(aCallable).get();
の形式の構築を使用できます。ノート:
Executors
クラスには、クロージャに似たほかの一般オブジェクトを変換できるメソッド・セットが含まれます。たとえば、PrivilegedAction
をCallable
形式に変換して、送信可能にすることができます。- 定義:
submit
、インタフェースExecutorService
- 型パラメータ:
T
- タスクの結果の型- パラメータ:
task
- 送信するタスク- 戻り値:
- タスクの保留完了を表すFuture
- 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException インタフェースからコピーされた説明:ExecutorService
指定されたタスクを実行し、例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。 正常に戻った時点、または例外が返された時点で、完了していないタスクは取り消されます。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。- 定義:
invokeAny
、インタフェースExecutorService
- 型パラメータ:
T
- タスクから返される値の型- パラメータ:
tasks
- タスクのコレクション- 戻り値:
- タスクのいずれかによって返される結果
- 例外:
InterruptedException
- 待機中に割込みが発生した場合ExecutionException
- 正常に完了したタスクがない場合
-
invokeAny
public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException インタフェースからコピーされた説明:ExecutorService
指定されたタスクを実行し、タイム・アウトが経過する前に例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。 正常に戻った時点、または例外が返された時点で、完了していないタスクは取り消されます。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。- 定義:
invokeAny
、インタフェースExecutorService
- 型パラメータ:
T
- タスクから返される値の型- パラメータ:
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout引数の時間単位- 戻り値:
- タスクのいずれかによって返される結果
- 例外:
InterruptedException
- 待機中に割込みが発生した場合ExecutionException
- 正常に完了したタスクがない場合TimeoutException
- タスクが正常に完了する前に、指定されたタイム・アウトが経過した場合
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException インタフェースからコピーされた説明:ExecutorService
指定されたタスクを実行し、すべて完了すると、ステータスと結果を含むFutureのリストを返します。 返されるリストの各要素に対してFuture.isDone()
はtrue
になります。 完了したタスクは、通常どおりか例外をスローすることで終了しています。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。- 定義:
invokeAll
、インタフェースExecutorService
- 型パラメータ:
T
- タスクから返される値の型- パラメータ:
tasks
- タスクのコレクション- 戻り値:
- タスクを表すFutureのリスト。リストの順序は、指定されたタスク・リストのイテレータにより生成される順序と同じで、各タスクは完了済みです。
- 例外:
InterruptedException
- 待機中に割込みが発生した場合。この場合、未完了のタスクは取り消されます
-
invokeAll
public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException インタフェースからコピーされた説明:ExecutorService
指定されたタスクを実行し、すべてが完了するか時間切れになるか、そのいずれかが最初に発生した時点で、ステータスと結果を含むFutureのリストを返します。 返されるリストの各要素に対してFuture.isDone()
はtrue
になります。 返された時点で、完了していないタスクは取り消されます。 完了したタスクは、通常どおりか例外をスローすることで終了しています。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。- 定義:
invokeAll
、インタフェースExecutorService
- 型パラメータ:
T
- タスクから返される値の型- パラメータ:
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout引数の時間単位- 戻り値:
- タスクを表すFutureのリスト。リストの順序は、指定されたタスク・リストのイテレータにより生成される順序と同じになります。 オペレーションがタイム・アウトにならなかった場合、各タスクは完了します。 オペレーションがタイム・アウトになった場合、タスクの一部は完了しません。
- 例外:
InterruptedException
- 待機中に割込みが発生した場合。この場合、未完了のタスクは取り消されます
-