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.
}
コンストラクタと説明 |
---|
AbstractExecutorService() |
修飾子と型 | メソッドと説明 |
---|---|
<T> List<Future<T>> |
invokeAll(Collection<? extends Callable<T>> tasks)
指定されたタスクを実行し、すべて完了すると、ステータスと結果を含む Future のリストを返します。
|
<T> List<Future<T>> |
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(Callable<T> callable)
指定された呼び出し可能タスクの RunnableFuture を返します。
|
protected <T> RunnableFuture<T> |
newTaskFor(Runnable runnable, T value)
指定された実行可能タスクおよびデフォルト値の RunnableFuture を返します。
|
<T> Future<T> |
submit(Callable<T> task)
値を返す実行用タスクを送信して、保留状態のタスク結果を表す Future を返します。
|
Future<?> |
submit(Runnable task)
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。
|
<T> Future<T> |
submit(Runnable task, T result)
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow
protected <T> RunnableFuture<T> newTaskFor(Runnable runnable, T value)
runnable
- ラップされる実行可能タスクvalue
- 返される Future のデフォルト値protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
callable
- ラップされる呼び出し可能タスクpublic Future<?> submit(Runnable task)
ExecutorService
submit
、インタフェース: ExecutorService
task
- 送信するタスクRejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクが null の場合public <T> Future<T> submit(Runnable task, T result)
ExecutorService
submit
、インタフェース: ExecutorService
task
- 送信するタスクresult
- 返す結果RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクが null の場合public <T> Future<T> submit(Callable<T> task)
ExecutorService
タスクの待機をただちにブロックする場合は、result = exec.submit(aCallable).get(); の形式の構築を使用できます。
注: Executors
クラスには、クロージャーに似たほかの一般オブジェクトを変換できるメソッドセットが含まれます。たとえば、PrivilegedAction
を Callable
形式に変換して、送信可能にすることができます。
submit
、インタフェース: ExecutorService
task
- 送信するタスクRejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクが null の場合public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
ExecutorService
invokeAny
、インタフェース: ExecutorService
tasks
- タスクのコレクションInterruptedException
- 待機中に割り込みが発生した場合ExecutionException
- 正常に完了したタスクがない場合public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService
invokeAny
、インタフェース: ExecutorService
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout 引数の時間単位InterruptedException
- 待機中に割り込みが発生した場合ExecutionException
- 正常に完了したタスクがない場合TimeoutException
- タスクが正常に完了する前に、指定されたタイムアウトが経過した場合public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
ExecutorService
Future.isDone()
は true になります。完了したタスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。invokeAll
、インタフェース: ExecutorService
tasks
- タスクのコレクションInterruptedException
- 待機中に割り込みが発生した場合。この場合、未完了のタスクは取り消される。public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
ExecutorService
Future.isDone()
は true になります。返された時点で、完了していないタスクは取り消されます。完了したタスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。invokeAll
、インタフェース: ExecutorService
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout 引数の時間単位InterruptedException
- 待機中に割り込みが発生した場合。この場合、未完了のタスクは取り消される バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.