JavaTM Platform
Standard Ed. 6

java.util.concurrent
クラス AbstractExecutorService

java.lang.Object
  上位を拡張 java.util.concurrent.AbstractExecutorService
すべての実装されたインタフェース:
Executor, ExecutorService
直系の既知のサブクラス:
ThreadPoolExecutor

public abstract class AbstractExecutorService
extends Object
implements ExecutorService

ExecutorService 実行メソッドのデフォルト実装を提供します。このクラスは、このパッケージで提供される FutureTask クラスがデフォルトである newTaskFor によって返される RunnableFuture を使用して、submitinvokeAny、および 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

コンストラクタの概要
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 を返します。
 
クラス 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
 

コンストラクタの詳細

AbstractExecutorService

public AbstractExecutorService()
メソッドの詳細

newTaskFor

protected <T> RunnableFuture<T> newTaskFor(Runnable runnable,
                                           T value)
指定された実行可能タスクおよびデフォルト値の RunnableFuture を返します。

パラメータ:
runnable - ラップされる実行可能タスク
value - 返される Future のデフォルト値
戻り値:
実行時に基本となる実行可能タスクを実行し、Future として、指定された値をその結果として生成し、基本となるタスクの取り消しを提供する RunnableFuture
導入されたバージョン:
1.6

newTaskFor

protected <T> RunnableFuture<T> newTaskFor(Callable<T> callable)
指定された呼び出し可能タスクの RunnableFuture を返します。

パラメータ:
callable - ラップされる呼び出し可能タスク
戻り値:
実行時に基本となる呼び出し可能タスクを呼び出し、Future として、呼び出し可能タスクの結果をその結果として生成し、基本となるタスクの取り消しを提供する RunnableFuture
導入されたバージョン:
1.6

submit

public Future<?> submit(Runnable task)
インタフェース ExecutorService の記述:
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。Future の get メソッドは、正常に完了した時点で null を返します。

定義:
インタフェース ExecutorService 内の submit
パラメータ:
task - 送信するタスク
戻り値:
タスクの保留完了を表す Future

submit

public <T> Future<T> submit(Runnable task,
                            T result)
インタフェース ExecutorService の記述:
実行用の Runnable タスクを送信し、そのタスクを表す Future を返します。Future の get メソッドは、正常に完了した時点で指定された結果を返します。

定義:
インタフェース ExecutorService 内の submit
パラメータ:
task - 送信するタスク
result - 返す結果
戻り値:
タスクの保留完了を表す Future

submit

public <T> Future<T> submit(Callable<T> task)
インタフェース ExecutorService の記述:
値を返す実行用タスクを送信して、保留状態のタスク結果を表す Future を返します。Future の get メソッドは、正常に完了した時点でタスクの結果を返します。

タスクの待機をただちにブロックする場合は、result = exec.submit(aCallable).get(); の形式の構築を使用できます。

注:Executors クラスには、クロージャーに似た他の一般オブジェクトを変換できるメソッドセットが含まれます。たとえば、PrivilegedActionCallable 形式に変換して、送信可能にすることができます。

定義:
インタフェース ExecutorService 内の submit
パラメータ:
task - 送信するタスク
戻り値:
タスクの保留完了を表す Future

invokeAny

public <T> T invokeAny(Collection<? extends Callable<T>> tasks)
            throws InterruptedException,
                   ExecutionException
インタフェース ExecutorService の記述:
指定されたタスクを実行し、例外をスローせずに正常に完了したタスクが存在する場合は、その結果を返します。正常に戻った時点、または例外が返された時点で、完了していないタスクは取り消されます。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。

定義:
インタフェース ExecutorService 内の invokeAny
パラメータ:
tasks - タスクのコレクション
戻り値:
タスクのいずれかによって返される結果
例外:
InterruptedException - 待機中に割り込みが発生した場合
ExecutionException - 正常に完了したタスクがない場合

invokeAny

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 - タスクが正常に完了する前に、指定されたタイムアウトが経過した場合

invokeAll

public <T> List<Future<T>> invokeAll(Collection<? extends Callable<T>> tasks)
                          throws InterruptedException
インタフェース ExecutorService の記述:
指定されたタスクを実行し、すべて完了すると、ステータスと結果を含む Future のリストを返します。返されるリストの各要素に対して Future.isDone()true になります。「完了した」タスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。

定義:
インタフェース ExecutorService 内の invokeAll
パラメータ:
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 になります。返された時点で、完了していないタスクは取り消されます。「完了した」タスクは、通常どおりか例外をスローすることで終了しています。オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。

定義:
インタフェース ExecutorService 内の invokeAll
パラメータ:
tasks - タスクのコレクション
timeout - 待機する最長時間
unit - timeout 引数の時間単位
戻り値:
タスクを表す Future のリスト。リストの順序は、指定されたタスクリストの反復子により生成される順序と同じになる。オペレーションがタイムアウトにならなかった場合、各タスクは完了する。オペレーションがタイムアウトになった場合、タスクの一部は完了しない。
例外:
InterruptedException - 待機中に割り込みが発生した場合。この場合、未完了のタスクは取り消される

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。