クラスScheduledThreadPoolExecutor

すべての実装されたインタフェース:
AutoCloseable, Executor, ExecutorService, ScheduledExecutorService

public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
指定された遅延時間後または定期的にコマンドを実行するようにスケジュールできるThreadPoolExecutorです。 複数のワーカー・スレッドが必要な場合、またはこのクラスが拡張するThreadPoolExecutorにさらに柔軟性または機能が必要な場合は、Timerよりもこのクラスを使用することをお薦めします。

遅延したタスクは、実行が有効になるまでにはすぐに実行されますが、有効にした後、いつ開始するかについてリアルタイムで保証されることはありません。 まったく同じ実行時間にスケジュール設定されたタスクは、送信の先入れ先出し(FIFO)順に有効になります。

送信されたタスクが、実行される前に取り消された場合は、実行が抑制されます。 デフォルトでは、このような取り消されたタスクは、その遅延時間が経過するまでワーク・キューから自動的には削除されません。 これにより、さらに検査や監視を行うことが可能になりますが、取り消されたタスクが無制限に保持される可能性もあります。 これを回避するには、setRemoveOnCancelPolicy(boolean)を使用して、取消時にタスクが作業キューからすぐに削除されます。

scheduleAtFixedRateまたはscheduleWithFixedDelayによってスケジュールされた定期タスクの連続実行は重複しません。 異なる実行は異なるスレッドで実行できますが、以前の実行の影響は、後続の実行の影響をhappen-beforeにします。

このクラスはThreadPoolExecutorから継承されますが、継承されたチューニング・メソッドのいくつかはこのクラスにとって有効ではありません。 特に、これはcorePoolSizeスレッドとアンバウンド形式のキューを使用した固定サイズのプールとして機能するため、maximumPoolSizeを調整しても効果はありません。 さらに、corePoolSizeを0に設定したり、allowCoreThreadTimeOutを使用したりしても、プールに実行可能になったタスクを処理するためのスレッドがない状態のままになる可能性があるため、ほとんど効果はありません。

ThreadPoolExecutorと同様に、特に指定がない場合、このクラスはExecutors.defaultThreadFactory()をデフォルトのスレッド・ファクトリとして使用し、ThreadPoolExecutor.AbortPolicyをデフォルトの拒否された実行ハンドラとして使用します。

拡張のノート: このクラスはexecuteメソッドとsubmitメソッドをオーバーライドして、タスク単位の遅延とスケジューリングを制御するための内部ScheduledFutureオブジェクトを生成します。 機能を保護するために、サブクラスでこれらのメソッドをこれ以上オーバーライドする場合は、スーパークラス・バージョンを呼び出す必要があります。これにより、タスクの追加のカスタマイズが実質的に無効になります。 ただし、このクラスでは、代替のprotected拡張メソッドdecorateTask (RunnableCallableごとに1つのバージョン)を提供します。これは、executesubmitschedulescheduleAtFixedRate、およびscheduleWithFixedDelayで入力されたコマンドを実行するために使用される具象タスク型のカスタマイズに使用できます。 デフォルトでは、ScheduledThreadPoolExecutorFutureTaskを拡張するタスク型を使用します。 ただし次のような形式のサブクラスを使用して、変更または置換できます。

public class CustomScheduledExecutor extends ScheduledThreadPoolExecutor {

  static class CustomTask<V> implements RunnableScheduledFuture<V> { ... }

  protected <V> RunnableScheduledFuture<V> decorateTask(
               Runnable r, RunnableScheduledFuture<V> task) {
      return new CustomTask<V>(r, task);
  }

  protected <V> RunnableScheduledFuture<V> decorateTask(
               Callable<V> c, RunnableScheduledFuture<V> task) {
      return new CustomTask<V>(c, task);
  }
  // ... add constructors, etc.
}

導入されたバージョン:
1.5
  • ネストされたクラスのサマリー

    クラスThreadPoolExecutorで宣言されたネストされたクラス/インタフェース

    ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
    修飾子と型
    クラス
    説明
    static class 
    RejectedExecutionExceptionをスローする、拒否されたタスクのハンドラ。
    static class 
    executorがシャットダウンしていない場合に、executeメソッドの呼出しスレッド内で、拒否されたタスクを直接実行する、拒否されたタスクのハンドラです。シャットダウンしている場合、タスクは破棄されます。
    static class 
    executorがシャットダウンしていない場合に、もっとも古い未処理の要求を破棄してexecuteを再試行する、拒否されたタスクのハンドラです。シャットダウンしている場合、タスクは破棄されます。
    static class 
    拒否されたタスクを通知なしで破棄する拒否されたタスクのハンドラです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    ScheduledThreadPoolExecutor(int corePoolSize)
    指定されたコア・プール・サイズで、新しいScheduledThreadPoolExecutorを作成します。
    指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
    ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)
    指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
    ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)
    指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    protected <V> RunnableScheduledFuture<V>
    runnableを実行するために使用するタスクを変更または置換します。
    protected <V> RunnableScheduledFuture<V>
    呼出し可能レイアウトを実行するために使用するタスクを変更または置換します。
    void
    execute(Runnable command)
    要求された遅延がゼロで、commandを実行します。
    boolean
    既存の定期的なタスクの実行を継続するかどうかに関するポリシーを取得します。このexecutorでshutdownが実行されたときでも取得します。
    boolean
    既存の遅延タスクを実行するかどうかに関するポリシーを取得します。このexecutorでshutdownが実行されたときでも取得します。
    このexecutorで使用するタスク・キューを返します。
    boolean
    取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを取得します。
    schedule(Runnable command, long delay, TimeUnit unit)
    指定された遅延後に実行可能になったワンショット・タスクを送信します。
    schedule(Callable<V> callable, long delay, TimeUnit unit)
    指定された遅延後に実行できるようになった、値を返すワンショット・タスクを送信します。
    scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
    定期的なアクションを発行します。このアクションは、指定された初期遅延の後、次に指定された期間で実行できるようになります。つまり、実行は、initialDelayinitialDelay + periodinitialDelay + 2 * periodなどの後に開始されます。
    scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
    定期的なアクションを発行します。このアクションは、指定された初期遅延の後に最初に実行可能になり、その後、ある実行の終了から次の実行の開始までの間に指定された遅延が発生します。
    void
    既存の定期的なタスクの実行を継続するかどうかに関するポリシーを設定します。このexecutorでshutdownが実行されたときでも設定します。
    void
    既存の遅延タスクを実行するかどうかに関するポリシーを設定します。このexecutorでshutdownが実行されたときでも取得します。
    void
    setRemoveOnCancelPolicy(boolean value)
    取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを設定します。
    void
    順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。
    実行中のアクティブなタスクすべての停止を試み、待機中のタスクの処理を停止し、実行を待機していたタスクのリストを返します。
    実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。
    <T> Future<T>
    submit(Runnable task, T result)
    実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。
    <T> Future<T>
    submit(Callable<T> task)
    値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。

    クラスで宣言されたメソッド ThreadPoolExecutor

    afterExecute, allowCoreThreadTimeOut, allowsCoreThreadTimeOut, awaitTermination, beforeExecute, finalize, getActiveCount, getCompletedTaskCount, getCorePoolSize, getKeepAliveTime, getLargestPoolSize, getMaximumPoolSize, getPoolSize, getRejectedExecutionHandler, getTaskCount, getThreadFactory, isShutdown, isTerminated, isTerminating, prestartAllCoreThreads, prestartCoreThread, purge, remove, setCorePoolSize, setKeepAliveTime, setMaximumPoolSize, setRejectedExecutionHandler, setThreadFactory, terminated, toString
    修飾子と型
    メソッド
    説明
    protected void
    指定されたRunnableの実行完了時に呼び出されるメソッドです。
    void
    allowCoreThreadTimeOut(boolean value)
    このプールで、キープアライブ時間内に到着したタスクがなければコア・スレッドがタイム・アウトおよび終了することが許可され、新しいタスクが到着したときは必要に応じてコア・スレッドが置き換えられるかどうかを制御するポリシーを設定します。
    boolean
    このプールで、keepAlive時間内に到着したタスクがなければコア・スレッドがタイム・アウトおよび終了することが許可され、新しいタスクが到着したときは必要に応じてコア・スレッドが置き換えられる場合は、trueを返します。
    boolean
    awaitTermination(long timeout, TimeUnit unit)
    シャットダウン要求後にすべてのタスクが実行を完了していたか、タイム・アウトが発生するか、現在のスレッドで割込みが発生するか、そのいずれかが最初に発生するまでブロックします。
    protected void
    指定されたスレッドで指定されたRunnableを実行する前に呼び出されるメソッドです。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は削除のために非推奨になりました。
    int
    アクティブにタスクを実行しているスレッドのおよその数を返します。
    long
    これまでに実行が完了したタスクのおよその総数を返します。
    int
    スレッドのコア数を返します。
    long
    スレッドのキープアライブ時間を返します。これは、スレッドが終了するまでアイドル状態を維持できる時間です。
    int
    プール内に同時に存在した最大スレッド数を返します。
    int
    スレッドの最大許容数を返します。
    int
    プール内の現在のスレッド数を返します。
    実行可能でないタスクの現在のハンドラを返します。
    long
    これまでに実行がスケジュールされたタスクのおよその総数を返します。
    新しいスレッドの作成に使用するスレッド・ファクトリを返します。
    boolean
    このexecutorがシャットダウンしていた場合、trueを返します。
    boolean
    シャットダウンに続いてすべてのタスクが完了していた場合、trueを返します。
    boolean
    ThreadPoolExecutor.shutdown()またはThreadPoolExecutor.shutdownNow()のあとでこのexecutorが終了処理中だが、完全に終了していない場合は、trueを返します。
    int
    すべてのコア・スレッドを起動し、アイドル状態で処理待ちにします。
    boolean
    コア・スレッドを起動し、アイドル状態で処理待ちにします。
    void
    取り消されたすべてのFutureタスクをワーク・キューから削除しようとします。
    boolean
    executorの内部キューにこのタスクが存在する場合は削除するため、そのタスクがまだ開始されていない場合は実行されません。
    void
    setCorePoolSize(int corePoolSize)
    スレッドのコア数を設定します。
    void
    setKeepAliveTime(long time, TimeUnit unit)
    スレッドのキープアライブ時間を設定します。これは、スレッドが終了するまでアイドル状態を維持できる時間です。
    void
    setMaximumPoolSize(int maximumPoolSize)
    スレッドの最大許容数を設定します。
    void
    実行可能でないタスクの新しいハンドラを設定します。
    void
    新しいスレッドの作成に使用するスレッド・ファクトリを設定します。
    protected void
    executorが終了したときに呼び出されるメソッドです。
    実行状態および推定のワーカーおよびタスク・カウントの指示を含めて、このプールおよびその状態を識別する文字列を返します。

    クラスで宣言されたメソッド AbstractExecutorService

    invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor
    修飾子と型
    メソッド
    説明
    <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を返します。

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

    clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。

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

    close
    修飾子と型
    メソッド
    説明
    default void
    順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。
  • コンストラクタの詳細

    • ScheduledThreadPoolExecutor

      public ScheduledThreadPoolExecutor(int corePoolSize)
      指定されたコア・プール・サイズで、新しいScheduledThreadPoolExecutorを作成します。
      パラメータ:
      corePoolSize - allowCoreThreadTimeOutが設定されていないかぎり、アイドルであってもプール内に維持されるスレッドの数
      スロー:
      IllegalArgumentException - corePoolSize < 0の場合
    • ScheduledThreadPoolExecutor

      public ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)
      指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
      パラメータ:
      corePoolSize - allowCoreThreadTimeOutが設定されていないかぎり、アイドルであってもプール内に維持されるスレッドの数
      threadFactory - executorが新しいスレッドを作成するときに使用するファクトリ
      スロー:
      IllegalArgumentException - corePoolSize < 0の場合
      NullPointerException - threadFactoryがnullである場合
    • ScheduledThreadPoolExecutor

      public ScheduledThreadPoolExecutor(int corePoolSize, RejectedExecutionHandler handler)
      指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
      パラメータ:
      corePoolSize - allowCoreThreadTimeOutが設定されていないかぎり、アイドルであってもプール内に維持されるスレッドの数
      handler - スレッドの境界およびキューの容量に達したため、実行がブロックされたときに使用するハンドラ
      スロー:
      IllegalArgumentException - corePoolSize < 0の場合
      NullPointerException - handlerがnullである場合
    • ScheduledThreadPoolExecutor

      public ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)
      指定された初期パラメータを使って、新しいScheduledThreadPoolExecutorを作成します。
      パラメータ:
      corePoolSize - allowCoreThreadTimeOutが設定されていないかぎり、アイドルであってもプール内に維持されるスレッドの数
      threadFactory - executorが新しいスレッドを作成するときに使用するファクトリ
      handler - スレッドの境界およびキューの容量に達したため、実行がブロックされたときに使用するハンドラ
      スロー:
      IllegalArgumentException - corePoolSize < 0の場合
      NullPointerException - threadFactoryまたはhandlerがnullの場合
  • メソッドの詳細

    • decorateTask

      protected <V> RunnableScheduledFuture<V> decorateTask(Runnable runnable, RunnableScheduledFuture<V> task)
      runnableを実行するために使用するタスクを変更または置換します。 このメソッドは、内部タスクを管理するための具象クラスをオーバーライドするために使用できます。 デフォルトの実装は単に指定されたタスクを返します。
      型パラメータ:
      V - タスクの結果のタイプ
      パラメータ:
      runnable - 送信されたRunnable
      task - Runnableを実行するために作成されたタスク
      戻り値:
      runnableを実行できるタスク
      導入されたバージョン:
      1.6
    • decorateTask

      protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
      呼出し可能レイアウトを実行するために使用するタスクを変更または置換します。 このメソッドは、内部タスクを管理するための具象クラスをオーバーライドするために使用できます。 デフォルトの実装は単に指定されたタスクを返します。
      型パラメータ:
      V - タスクの結果のタイプ
      パラメータ:
      callable - 送信されたCallable
      task - Callableを実行するために作成されたタスク
      戻り値:
      呼出し可能レイアウトを実行できるタスク
      導入されたバージョン:
      1.6
    • schedule

      public ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit)
      インタフェースからコピーされた説明: ScheduledExecutorService
      指定された遅延後に実行可能になったワンショット・タスクを送信します。
      定義:
      schedule、インタフェースScheduledExecutorService
      パラメータ:
      command - 実行するタスク
      delay - 現在から遅延実行までの時間
      unit - delayパラメータの時間単位
      戻り値:
      タスクの保留状態の完了を表すScheduledFuture。そのget()メソッドは完了時にnullを返す
      スロー:
      RejectedExecutionException - タスクの実行をスケジュールできない場合
      NullPointerException - コマンドまたはユニットがヌルの場合
    • schedule

      public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
      インタフェースからコピーされた説明: ScheduledExecutorService
      指定された遅延後に実行できるようになった、値を返すワンショット・タスクを送信します。
      定義:
      schedule、インタフェースScheduledExecutorService
      型パラメータ:
      V - コール可能結果のタイプ
      パラメータ:
      callable - 実行する関数
      delay - 現在から遅延実行までの時間
      unit - delayパラメータの時間単位
      戻り値:
      結果を抽出または取り消すために使用できるScheduledFuture
      スロー:
      RejectedExecutionException - タスクの実行をスケジュールできない場合
      NullPointerException - 呼び出し可能またはユニットがnullの場合
    • scheduleAtFixedRate

      public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
      定期的なアクションを発行します。このアクションは、指定された初期遅延の後、次に指定された期間で実行できるようになります。つまり、実行は、initialDelayinitialDelay + periodinitialDelay + 2 * periodなどの後に開始されます。

      タスク実行のシーケンスは、次の例外的な完了が発生するまで無期限に続きます:

      後続の実行は抑制されます。 返された将来のisDone()へのその後の呼び出しは、trueを返します。

      このタスクを実行するのに指定の期間(period)より長い時間がかかる場合、以降の実行は遅れて開始されることがありますが、並行して実行はされません。

      定義:
      scheduleAtFixedRate、インタフェースScheduledExecutorService
      パラメータ:
      command - 実行するタスク
      initialDelay - 最初の遅延実行までの時間
      period - 連続する実行の間隔
      unit - initialDelayおよびperiodパラメータの時間単位
      戻り値:
      一連の繰返しタスクの保留中の完了を表すScheduledFuture。 今後のget()メソッドは、正常に戻されることはなく、タスクの取消しまたはタスク実行の異常終了時に例外をスローします。
      スロー:
      RejectedExecutionException - タスクの実行をスケジュールできない場合
      NullPointerException - コマンドまたはユニットがヌルの場合
      IllegalArgumentException - periodが0以下である場合
    • scheduleWithFixedDelay

      public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
      定期的なアクションを発行します。このアクションは、指定された初期遅延の後に最初に実行可能になり、その後、ある実行の終了から次の実行の開始までの間に指定された遅延が発生します。

      タスク実行のシーケンスは、次の例外的な完了が発生するまで無期限に続きます:

      後続の実行は抑制されます。 返された将来のisDone()へのその後の呼び出しは、trueを返します。

      定義:
      scheduleWithFixedDelay、インタフェースScheduledExecutorService
      パラメータ:
      command - 実行するタスク
      initialDelay - 最初の遅延実行までの時間
      delay - 実行の終了後から次の開始までの遅延
      unit - initialDelayおよびdelayパラメータの時間単位
      戻り値:
      一連の繰返しタスクの保留中の完了を表すScheduledFuture。 今後のget()メソッドは、正常に戻されることはなく、タスクの取消しまたはタスク実行の異常終了時に例外をスローします。
      スロー:
      RejectedExecutionException - タスクの実行をスケジュールできない場合
      NullPointerException - コマンドまたはユニットがヌルの場合
      IllegalArgumentException - delayが0以下である場合
    • execute

      public void execute(Runnable command)
      要求された遅延がゼロで、commandを実行します。 これにはschedule(command, 0, anyUnit)と同等の効果があります。 キューの検査やshutdownNowによって返されたリストの検査では、command自体ではなく、遅延が0のScheduledFutureにアクセスすることに注意してください。

      ScheduledFutureオブジェクトを使用した結果として、commandが突然終了した場合でも、2番目のThrowable引数をnullにしてafterExecuteが常に呼び出されます。 代わりに、このようなタスクによってスローされたThrowableは、Future.get()を使用して取得できます。

      定義:
      execute、インタフェースExecutor
      オーバーライド:
      execute、クラスThreadPoolExecutor
      パラメータ:
      command - 実行するタスク
      スロー:
      RejectedExecutionException - RejectedExecutionHandlerの判断で、executorがシャットダウンされたため、タスクを実行のために受け入れることができない場合
      NullPointerException - commandがnullである場合
    • submit

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

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

      public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)
      既存の定期的なタスクの実行を継続するかどうかに関するポリシーを設定します。このexecutorでshutdownが実行されたときでも設定します。 この場合、すでにシャットダウンされている場合、shutdownNowまたはポリシーがfalseに設定されるまで、実行は継続されます。 この値はデフォルトでfalseです。
      パラメータ:
      value - trueの場合はシャットダウン後に続行し、それ以外の場合は続行しない
      関連項目:
    • getContinueExistingPeriodicTasksAfterShutdownPolicy

      public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
      既存の定期的なタスクの実行を継続するかどうかに関するポリシーを取得します。このexecutorでshutdownが実行されたときでも取得します。 この場合、すでにシャットダウンされている場合、shutdownNowまたはポリシーがfalseに設定されるまで、実行は継続されます。 この値はデフォルトでfalseです。
      戻り値:
      シャットダウン後に続行する場合はtrue
      関連項目:
    • setExecuteExistingDelayedTasksAfterShutdownPolicy

      public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
      既存の遅延タスクを実行するかどうかに関するポリシーを設定します。このexecutorでshutdownが実行されたときでも取得します。 この場合、これらのタスクが終了するのは、shutdownNowの実行時か、すでにシャットダウンが実行されポリシーをfalseに設定したあとに限られます。 この値はデフォルトでtrueです。
      パラメータ:
      value - trueの場合はシャットダウン後に実行し、それ以外の場合は実行しない
      関連項目:
    • getExecuteExistingDelayedTasksAfterShutdownPolicy

      public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
      既存の遅延タスクを実行するかどうかに関するポリシーを取得します。このexecutorでshutdownが実行されたときでも取得します。 この場合、これらのタスクが終了するのは、shutdownNowの実行時か、すでにシャットダウンが実行されポリシーをfalseに設定したあとに限られます。 この値はデフォルトでtrueです。
      戻り値:
      シャットダウン後に実行する場合はtrue
      関連項目:
    • setRemoveOnCancelPolicy

      public void setRemoveOnCancelPolicy(boolean value)
      取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを設定します。 この値はデフォルトでfalseです。
      パラメータ:
      value - trueの場合は取消し時に削除し、それ以外の場合は削除しない。
      導入されたバージョン:
      1.7
      関連項目:
    • getRemoveOnCancelPolicy

      public boolean getRemoveOnCancelPolicy()
      取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを取得します。 この値はデフォルトでfalseです。
      戻り値:
      取り消されたタスクがただちにキューから削除される場合はtrue
      導入されたバージョン:
      1.7
      関連項目:
    • shutdown

      public void shutdown()
      順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。 シャットダウン後に呼出しを実行しても、効果はありません。

      このメソッドは、以前に送信されたタスクが実行を完了するのを待機しません。 これを実行するには、awaitTerminationを使ってください。

      ExecuteExistingDelayedTasksAfterShutdownPolicyfalseに設定されていた場合、遅延時間が経過していない既存の遅延タスクは取り消されます。 また、 ContinueExistingPeriodicTasksAfterShutdownPolicytrueに設定されていないかぎり、既存の定期的なタスクの以後の実行は取り消されます。

      定義:
      shutdown、インタフェースExecutorService
      オーバーライド:
      shutdown、クラスThreadPoolExecutor
    • shutdownNow

      public List<Runnable> shutdownNow()
      実行中のアクティブなタスクすべての停止を試み、待機中のタスクの処理を停止し、実行を待機していたタスクのリストを返します。 これらのタスクは、このメソッドから戻るときに、タスク・キューからドレイン(削除)されます。

      このメソッドは、アクティブに実行中のタスクが終了するのを待機しません。 これを実行するには、awaitTerminationを使ってください。

      実行中のアクティブなタスク処理を停止するために最善の努力をすること以上の保証はありません。 この実装は、Thread.interrupt()を介してタスクを中断します。中断への応答に失敗したタスクは終了しない場合があります。

      定義:
      shutdownNow、インタフェースExecutorService
      オーバーライド:
      shutdownNow、クラスThreadPoolExecutor
      戻り値:
      実行が開始されなかったタスクのリスト。 このリストの各要素はScheduledFutureです。 scheduleメソッドのいずれかを介して送信されるタスクの場合、要素は返されたScheduledFutureと同じになります。 executeを使用して送信されたタスクの場合、要素はゼロ遅延ScheduledFutureになります。
    • getQueue

      public BlockingQueue<Runnable> getQueue()
      このexecutorで使用するタスク・キューを返します。 タスク・キューへのアクセスは、デバッグおよび監視を主な目的としています。 このキューは、アクティブに使用されている可能性があります。 タスク・キューを取り出しても、キューに入っているタスクの実行は妨げられません。

      このキューの各要素はScheduledFutureです。 scheduleメソッドのいずれかを介して送信されるタスクの場合、要素は返されたScheduledFutureと同じになります。 executeを使用して送信されたタスクの場合、要素はゼロ遅延ScheduledFutureになります。

      このキューに対する反復処理では、タスクが実行順序でトラバースされることは保証されません

      オーバーライド:
      getQueue、クラスThreadPoolExecutor
      戻り値:
      タスク・キュー