|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.util.concurrent.AbstractExecutorService
public abstract class AbstractExecutorService
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()
|
メソッドの概要 | ||
---|---|---|
|
invokeAll(Collection<? extends Callable<T>> tasks)
指定されたタスクを実行し、すべて完了すると、ステータスと結果を含む Future のリストを返します。 |
|
|
invokeAll(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
指定されたタスクを実行し、すべてが完了するか時間切れになるか、そのいずれかが最初に発生した時点で、ステータスと結果を含む Future のリストを返します。 |
|
|
invokeAny(Collection<? extends Callable<T>> tasks)
指定されたタスクを実行し、例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。 |
|
|
invokeAny(Collection<? extends Callable<T>> tasks,
long timeout,
TimeUnit unit)
指定されたタスクを実行し、タイムアウトが経過する前に例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。 |
|
protected
|
newTaskFor(Callable<T> callable)
指定された呼び出し可能タスクの RunnableFuture を返します。 |
|
protected
|
newTaskFor(Runnable runnable,
T value)
指定された実行可能タスクおよびデフォルト値の RunnableFuture を返します。 |
|
|
submit(Callable<T> task)
値を返す実行用タスクを送信して、保留状態のタスク結果を表す Future を返します。 |
|
Future<?> |
submit(Runnable task)
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。 |
|
|
submit(Runnable task,
T result)
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
インタフェース java.util.concurrent.ExecutorService から継承されたメソッド |
---|
awaitTermination, isShutdown, isTerminated, shutdown, shutdownNow |
インタフェース java.util.concurrent.Executor から継承されたメソッド |
---|
execute |
コンストラクタの詳細 |
---|
public AbstractExecutorService()
メソッドの詳細 |
---|
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
の記述:
ExecutorService
内の submit
task
- 送信するタスク
public <T> Future<T> submit(Runnable task, T result)
ExecutorService
の記述:
ExecutorService
内の submit
task
- 送信するタスクresult
- 返す結果
public <T> Future<T> submit(Callable<T> task)
ExecutorService
の記述:タスクの待機をただちにブロックする場合は、result = exec.submit(aCallable).get(); の形式の構築を使用できます。
注:Executors
クラスには、クロージャーに似たほかの一般オブジェクトを変換できるメソッドセットが含まれます。たとえば、PrivilegedAction
を Callable
形式に変換して、送信可能にすることができます。
ExecutorService
内の submit
task
- 送信するタスク
public <T> T invokeAny(Collection<? extends Callable<T>> tasks) throws InterruptedException, ExecutionException
ExecutorService
の記述:
ExecutorService
内の invokeAny
tasks
- タスクのコレクション
InterruptedException
- 待機中に割り込みが発生した場合
ExecutionException
- 正常に完了したタスクがない場合public <T> T invokeAny(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
ExecutorService
の記述:
ExecutorService
内の invokeAny
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout 引数の時間単位
InterruptedException
- 待機中に割り込みが発生した場合
ExecutionException
- 正常に完了したタスクがない場合
TimeoutException
- タスクが正常に完了する前に、指定されたタイムアウトが経過した場合public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks) throws InterruptedException
ExecutorService
の記述:Future.isDone()
は true になります。「完了した」タスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。
ExecutorService
内の invokeAll
tasks
- タスクのコレクション
InterruptedException
- 待機中に割り込みが発生した場合。この場合、未完了のタスクは取り消される。public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks, long timeout, TimeUnit unit) throws InterruptedException
ExecutorService
の記述:Future.isDone()
は true になります。返された時点で、完了していないタスクは取り消されます。「完了した」タスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。
ExecutorService
内の invokeAll
tasks
- タスクのコレクションtimeout
- 待機する最長時間unit
- timeout 引数の時間単位
InterruptedException
- 待機中に割り込みが発生した場合。この場合、未完了のタスクは取り消される
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。