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, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。