モジュール java.base
パッケージ java.util.concurrent

クラスAbstractExecutorService

  • すべての実装されたインタフェース:
    Executor, ExecutorService
    直系の既知のサブクラス:
    ForkJoinPool, 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

        public AbstractExecutorService​()
    • メソッドの詳細

      • newTaskFor

        protected <T> RunnableFuture<T> newTaskFor​(Runnable runnable,
                                                   T value)
        指定された実行可能タスクおよびデフォルト値のRunnableFutureを返します。
        型パラメータ:
        T - 指定された値の型
        パラメータ:
        runnable - ラップされる実行可能タスク
        value - 返されるFutureのデフォルト値
        戻り値:
        実行時に基本となる実行可能タスクを実行し、Futureとして、指定された値をその結果として生成し、基本となるタスクの取消しを提供するRunnableFuture
        導入されたバージョン:
        1.6
      • newTaskFor

        protected <T> RunnableFuture<T> newTaskFor​(Callable<T> callable)
        指定された呼出し可能タスクのRunnableFutureを返します。
        型パラメータ:
        T - 呼出し可能タスクの結果の型
        パラメータ:
        callable - ラップされる呼出し可能タスク
        戻り値:
        実行時に基本となる呼出し可能タスクを呼び出し、Futureとして、呼出し可能タスクの結果をその結果として生成し、基本となるタスクの取消しを提供するRunnableFuture
        導入されたバージョン:
        1.6
      • submit

        public Future<?> submit​(Runnable task)
        インタフェースからコピーされた説明: ExecutorService
        実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。 Futureのgetメソッドは、正常に完了した時点でnullを返します。
        定義:
        submit、インタフェース: ExecutorService
        パラメータ:
        task - 送信するタスク
        戻り値:
        タスクの保留完了を表すFuture
        例外:
        RejectedExecutionException - タスクの実行をスケジュールできない場合
        NullPointerException - タスクがnullの場合
      • submit

        public <T> Future<T> submit​(Runnable task,
                                    T result)
        インタフェースからコピーされた説明: ExecutorService
        実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。 Futureのgetメソッドは、正常に完了した時点で指定された結果を返します。
        定義:
        submit、インタフェース: ExecutorService
        型パラメータ:
        T - 結果の型
        パラメータ:
        task - 送信するタスク
        result - 返す結果
        戻り値:
        タスクの保留完了を表すFuture
        例外:
        RejectedExecutionException - タスクの実行をスケジュールできない場合
        NullPointerException - タスクがnullの場合
      • submit

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

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

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

        定義:
        submit、インタフェース: ExecutorService
        型パラメータ:
        T - タスクの結果の型
        パラメータ:
        task - 送信するタスク
        戻り値:
        タスクの保留完了を表すFuture
        例外:
        RejectedExecutionException - タスクの実行をスケジュールできない場合
        NullPointerException - タスクがnullの場合
      • invokeAny

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

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

        public <T> List<Future<T>> invokeAll​(Collection<? extends Callable<T>> tasks)
                                      throws InterruptedException
        インタフェースからコピーされた説明: ExecutorService
        指定されたタスクを実行し、すべて完了すると、ステータスと結果を含むFutureのリストを返します。 返されるリストの各要素に対してFuture.isDone()trueになります。 完了したタスクは、通常どおりか例外をスローすることで終了しています。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。
        定義:
        invokeAll、インタフェース: ExecutorService
        型パラメータ:
        T - タスクから返される値の型
        パラメータ:
        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になります。 返された時点で、完了していないタスクは取り消されます。 完了したタスクは、通常どおりか例外をスローすることで終了しています。 オペレーションの進行中に、指定されたコレクションが変更された場合、このメソッドの結果は定義されていません。
        定義:
        invokeAll、インタフェース: ExecutorService
        型パラメータ:
        T - タスクから返される値の型
        パラメータ:
        tasks - タスクのコレクション
        timeout - 待機する最長時間
        unit - timeout引数の時間単位
        戻り値:
        タスクを表すFutureのリスト。リストの順序は、指定されたタスク・リストのイテレータにより生成される順序と同じになります。 オペレーションがタイム・アウトにならなかった場合、各タスクは完了します。 オペレーションがタイム・アウトになった場合、タスクの一部は完了しません。
        例外:
        InterruptedException - 待機中に割込みが発生した場合。この場合、未完了のタスクは取り消されます