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