クラスAbstractExecutorService

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

public abstract class AbstractExecutorService extends Object implements ExecutorService
Executor.execute(Runnable)以外のExecutorServiceメソッドのデフォルト実装を提供します。 このクラスは、newTaskForによって返されるRunnableFutureを使用して submitinvokeAnyおよびinvokeAllメソッドを実装します。このメソッドは、このパッケージで提供されるFutureTaskクラスにデフォルト設定されます。 たとえば、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
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    <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(Runnable runnable, T value)
    指定された実行可能タスクおよびデフォルト値のRunnableFutureを返します。
    protected <T> RunnableFuture<T>
    newTaskFor(Callable<T> callable)
    指定された呼出し可能タスクのRunnableFutureを返します。
    実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。
    <T> Future<T>
    submit(Runnable task, T result)
    実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。
    <T> Future<T>
    submit(Callable<T> task)
    値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

    インタフェースExecutorで宣言されたメソッド

    execute
    修飾子と型
    メソッド
    説明
    void
    execute(Runnable command)
    将来のどの時点かで、指定されたコマンドを実行します。

    インタフェースで宣言されたメソッド ExecutorService

    awaitTermination, close, isShutdown, isTerminated, shutdown, shutdownNow
    修飾子と型
    メソッド
    説明
    boolean
    awaitTermination(long timeout, TimeUnit unit)
    シャットダウン要求後にすべてのタスクが実行を完了していたか、タイム・アウトが発生するか、現在のスレッドで割込みが発生するか、そのいずれかが最初に発生するまでブロックします。
    default void
    順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。
    boolean
    このexecutorがシャットダウンしていた場合、trueを返します。
    boolean
    シャットダウンに続いてすべてのタスクが完了していた場合、trueを返します。
    void
    順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。
    実行中のアクティブなタスクすべての停止を試み、待機中のタスクの処理を停止し、実行を待機していたタスクのリストを返します。
  • コンストラクタの詳細

    • 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 - 待機中に割込みが発生した場合
      NullPointerException - タスクまたは実行に従ういずれかの要素タスクがnullの場合
      IllegalArgumentException - タスクが空の場合
      ExecutionException - 正常に完了したタスクがない場合
      RejectedExecutionException - タスクの実行をスケジュールできない場合
    • 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 - 待機中に割込みが発生した場合
      NullPointerException - タスク、単位、または実行に従ういずれかの要素タスクがnullの場合
      TimeoutException - タスクが正常に完了する前に、指定されたタイム・アウトが経過した場合
      ExecutionException - 正常に完了したタスクがない場合
      RejectedExecutionException - タスクの実行をスケジュールできない場合
    • 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 - 待機中に割込みが発生した場合。この場合、未完了のタスクは取り消されます
      NullPointerException - タスクまたはそのいずれかの要素がnullの場合
      RejectedExecutionException - いずれかのタスクの実行をスケジュールできない場合
    • 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 - 待機中に割込みが発生した場合。この場合、未完了のタスクは取り消されます
      NullPointerException - タスク、その要素のいずれか、または単位がnullの場合
      RejectedExecutionException - いずれかのタスクの実行をスケジュールできない場合