- java.lang.Object
-
- java.util.concurrent.AbstractExecutorService
-
- java.util.concurrent.ThreadPoolExecutor
-
- java.util.concurrent.ScheduledThreadPoolExecutor
-
- すべての実装されたインタフェース:
Executor
,ExecutorService
,ScheduledExecutorService
public class ScheduledThreadPoolExecutor extends ThreadPoolExecutor implements ScheduledExecutorService
指定された遅延時間後または定期的にコマンドを実行するようにスケジュールできるThreadPoolExecutor
です。 複数のワーカー・スレッドが必要な場合、またはこのクラスが拡張するThreadPoolExecutor
にさらに柔軟性または機能が必要な場合は、Timer
よりもこのクラスを使用することをお薦めします。遅延タスクは有効になるとすぐに実行されますが、有効になったあといつ開始されるかについては、リアルタイム保証がありません。 まったく同じ実行時間にスケジュール設定されたタスクは、送信の先入れ先出し(FIFO)順に有効になります。
送信されたタスクが、実行される前に取り消された場合は、実行が抑制されます。 デフォルトでは、このような取り消されたタスクは、その遅延時間が経過するまでワーク・キューから自動的には削除されません。 これにより、さらに検査や監視を行うことが可能になりますが、取り消されたタスクが無制限に保持される可能性もあります。 これを避けるには、
setRemoveOnCancelPolicy(boolean)
を使用して、取消時に作業キューからタスクを即時に削除する必要があります。scheduleAtFixedRate
またはscheduleWithFixedDelay
を介してスケジュールされた定期タスクの連続実行は重複しません。 各実行は異なるスレッドによって実行される可能性がありますが、以前の実行の効果は以降の実行の効果の前に発生します。このクラスは
ThreadPoolExecutor
から継承されますが、継承されたチューニング・メソッドのいくつかはこのクラスにとって有効ではありません。 特に、これはcorePoolSize
スレッドとアンバウンド形式のキューを使用した固定サイズのプールとして機能するため、maximumPoolSize
を調整しても効果はありません。 さらに、corePoolSize
を0に設定したり、allowCoreThreadTimeOut
を使用したりしても、プールに実行可能になったタスクを処理するためのスレッドがない状態のままになる可能性があるため、ほとんど効果はありません。拡張の注意: このクラスは
execute
メソッドとsubmit
メソッドをオーバーライドして、タスク単位の遅延とスケジューリングを制御するための内部ScheduledFuture
オブジェクトを生成します。 機能を保護するために、サブクラスでこれらのメソッドをこれ以上オーバーライドする場合は、スーパークラス・バージョンを呼び出す必要があります。これにより、タスクの追加のカスタマイズが実質的に無効になります。 ただし、このクラスでは、代替のprotected拡張メソッドdecorateTask
(Runnable
とCallable
ごとに1つのバージョン)を提供します。これは、execute
、submit
、schedule
、scheduleAtFixedRate
、およびscheduleWithFixedDelay
で入力されたコマンドを実行するために使用される具象タスク型のカスタマイズに使用できます。 デフォルトでは、ScheduledThreadPoolExecutor
はFutureTask
を拡張するタスク型を使用します。 ただし次のような形式のサブクラスを使用して、変更または置換できます。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
-
-
ネストされたクラスのサマリー
-
クラス java.util.concurrent.ThreadPoolExecutorから継承されたネストされたクラス/インタフェース
ThreadPoolExecutor.AbortPolicy, ThreadPoolExecutor.CallerRunsPolicy, ThreadPoolExecutor.DiscardOldestPolicy, ThreadPoolExecutor.DiscardPolicy
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ScheduledThreadPoolExecutor(int corePoolSize)
指定されたコア・プール・サイズで、新しいScheduledThreadPoolExecutor
を作成します。ScheduledThreadPoolExecutor(int corePoolSize, RejectedExecutionHandler handler)
指定された初期パラメータを使って、新しいScheduledThreadPoolExecutor
を作成します。ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory)
指定された初期パラメータを使って、新しいScheduledThreadPoolExecutor
を作成します。ScheduledThreadPoolExecutor(int corePoolSize, ThreadFactory threadFactory, RejectedExecutionHandler handler)
指定された初期パラメータを使って、新しいScheduledThreadPoolExecutor
を作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 protected <V> RunnableScheduledFuture<V>
decorateTask(Runnable runnable, RunnableScheduledFuture<V> task)
runnableを実行するために使用するタスクを変更または置換します。protected <V> RunnableScheduledFuture<V>
decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
呼出し可能レイアウトを実行するために使用するタスクを変更または置換します。void
execute(Runnable command)
要求された遅延がゼロで、command
を実行します。boolean
getContinueExistingPeriodicTasksAfterShutdownPolicy()
既存の定期的なタスクの実行を継続するかどうかに関するポリシーを取得します。このexecutorでshutdown
が実行されたときでも取得します。boolean
getExecuteExistingDelayedTasksAfterShutdownPolicy()
既存の遅延タスクを実行するかどうかに関するポリシーを取得します。このexecutorでshutdown
が実行されたときでも取得します。BlockingQueue<Runnable>
getQueue()
このexecutorで使用するタスク・キューを返します。boolean
getRemoveOnCancelPolicy()
取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを取得します。ScheduledFuture<?>
schedule(Runnable command, long delay, TimeUnit unit)
指定された遅延後に有効になる単発的なアクションを作成して実行します。<V> ScheduledFuture<V>
schedule(Callable<V> callable, long delay, TimeUnit unit)
指定された遅延後に有効になるScheduledFutureを作成して実行します。ScheduledFuture<?>
scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
指定された初期遅延の後に最初に有効になり、続いて指定された期間で有効になる定期的アクションを作成して実行します; つまり、実行はinitialDelay
、initialDelay + period
、initialDelay + 2 * period
などの後に開始されます。ScheduledFuture<?>
scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
指定された初期遅延の経過後にはじめて有効になり、その後は実行の終了後から次の開始までの指定の遅延ごとに有効になる定期的なアクションを作成して実行します。void
setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)
既存の定期的なタスクの実行を継続するかどうかに関するポリシーを設定します。このexecutorでshutdown
が実行されたときでも設定します。void
setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
既存の遅延タスクを実行するかどうかに関するポリシーを設定します。このexecutorでshutdown
が実行されたときでも取得します。void
setRemoveOnCancelPolicy(boolean value)
取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを設定します。void
shutdown()
順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。List<Runnable>
shutdownNow()
実行中のアクティブなタスクすべての停止を試み、待機中のタスクの処理を停止し、実行を待機していたタスクのリストを返します。Future<?>
submit(Runnable task)
実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。<T> Future<T>
submit(Runnable task, T result)
実行用のRunnableタスクを送信し、そのタスクを表すFutureを返します。<T> Future<T>
submit(Callable<T> task)
値を返す実行用タスクを送信して、保留状態のタスク結果を表すFutureを返します。-
クラス java.util.concurrent.AbstractExecutorServiceから継承されたメソッド
invokeAll, invokeAll, invokeAny, invokeAny, newTaskFor, newTaskFor
-
インタフェース java.util.concurrent.ExecutorServiceから継承されるメソッド
awaitTermination, invokeAll, invokeAll, invokeAny, invokeAny, isShutdown, isTerminated
-
クラス java.lang.Objectから継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
クラス java.util.concurrent.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
-
-
-
-
コンストラクタの詳細
-
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
- 送信されたRunnabletask
- Runnableを実行するために作成されたタスク- 戻り値:
- runnableを実行できるタスク
- 導入されたバージョン:
- 1.6
-
decorateTask
protected <V> RunnableScheduledFuture<V> decorateTask(Callable<V> callable, RunnableScheduledFuture<V> task)
呼出し可能レイアウトを実行するために使用するタスクを変更または置換します。 このメソッドは、内部タスクを管理するための具象クラスをオーバーライドするために使用できます。 デフォルトの実装は単に指定されたタスクを返します。- 型パラメータ:
V
- タスクの結果の型- パラメータ:
callable
- 送信されたCallabletask
- 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
- コマンドがnullの場合
-
schedule
public <V> ScheduledFuture<V> schedule(Callable<V> callable, long delay, TimeUnit unit)
インタフェースからコピーされた説明:ScheduledExecutorService
指定された遅延後に有効になるScheduledFutureを作成して実行します。- 定義:
schedule
、インタフェース:ScheduledExecutorService
- 型パラメータ:
V
- 呼出し可能タスクの結果の型- パラメータ:
callable
- 実行する関数delay
- 現在から遅延実行までの時間unit
- delayパラメータの時間単位- 戻り値:
- 結果を抽出または取り消すために使用できるScheduledFuture
- 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- 呼出し可能レイアウトがnullの場合
-
scheduleAtFixedRate
public ScheduledFuture<?> scheduleAtFixedRate(Runnable command, long initialDelay, long period, TimeUnit unit)
インタフェースからコピーされた説明:ScheduledExecutorService
指定された初期遅延の後に最初に有効になり、続いて指定された期間で有効になる定期的アクションを作成して実行します; つまり、実行はinitialDelay
、initialDelay + period
、initialDelay + 2 * period
などの後に開始されます。タスク実行のシーケンスは、次の例外的な完了が発生するまで無期限に続きます:
- タスクは返された未来を介して「明示的に取消された」です。
- エグゼキュータが終了し、タスクの取消も発生します。
- タスクの実行によって例外がスローされます。 この場合、返された将来の
get
を呼び出すとExecutionException
がスローされます。
isDone()
へのその後の呼び出しは、true
を返します。このタスクを実行するのに指定の期間(period)より長い時間がかかる場合、以降の実行は遅れて開始されることがありますが、並行して実行はされません。
- 定義:
scheduleAtFixedRate
、インタフェース:ScheduledExecutorService
- パラメータ:
command
- 実行するタスクinitialDelay
- 最初の遅延実行までの時間period
- 連続する実行の間隔unit
- initialDelayおよびperiodパラメータの時間単位- 戻り値:
- 一連の繰り返しタスクの保留中の完了を表すScheduledFuture。 将来の
get()
メソッドは決して正常に戻らず、タスクの取消やタスクの実行の異常終了時に例外をスローします。 - 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- コマンドがnullの場合IllegalArgumentException
- periodが0以下である場合
-
scheduleWithFixedDelay
public ScheduledFuture<?> scheduleWithFixedDelay(Runnable command, long initialDelay, long delay, TimeUnit unit)
インタフェースからコピーされた説明:ScheduledExecutorService
指定された初期遅延の経過後にはじめて有効になり、その後は実行の終了後から次の開始までの指定の遅延ごとに有効になる定期的なアクションを作成して実行します。タスク実行のシーケンスは、次の例外的な完了が発生するまで無期限に続きます:
- タスクは返された未来を介して「明示的に取消された」です。
- エグゼキュータが終了し、タスクの取消も発生します。
- タスクの実行によって例外がスローされます。 この場合、返された将来の
get
を呼び出すとExecutionException
がスローされます。
isDone()
へのその後の呼び出しは、true
を返します。- 定義:
scheduleWithFixedDelay
、インタフェース:ScheduledExecutorService
- パラメータ:
command
- 実行するタスクinitialDelay
- 最初の遅延実行までの時間delay
- 実行の終了後から次の開始までの遅延unit
- initialDelayおよびdelayパラメータの時間単位- 戻り値:
- 一連の繰り返しタスクの保留中の完了を表すScheduledFuture。 将来の
get()
メソッドは決して正常に戻らず、タスクの取消やタスクの実行の異常終了時に例外をスローします。 - 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- コマンドがnullの場合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
クラスには、クロージャに似たほかの一般オブジェクトを変換できるメソッド・セットが含まれます。たとえば、PrivilegedAction
をCallable
形式に変換して、送信可能にすることができます。- 定義:
submit
、インタフェース:ExecutorService
- オーバーライド:
submit
、クラス:AbstractExecutorService
- 型パラメータ:
T
- タスクの結果の型- パラメータ:
task
- 送信するタスク- 戻り値:
- タスクの保留完了を表すFuture
- 例外:
RejectedExecutionException
- タスクの実行をスケジュールできない場合NullPointerException
- タスクがnullの場合
-
setContinueExistingPeriodicTasksAfterShutdownPolicy
public void setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean value)
既存の定期的なタスクの実行を継続するかどうかに関するポリシーを設定します。このexecutorでshutdown
が実行されたときでも設定します。 この場合、これらのタスクが終了するのは、shutdownNow
の実行時か、すでにシャットダウンが実行されポリシーをfalse
に設定したあとに限られます。 この値はデフォルトでfalse
です。- パラメータ:
value
-true
の場合はシャットダウン後に続行し、それ以外の場合は続行しない- 関連項目:
getContinueExistingPeriodicTasksAfterShutdownPolicy()
-
getContinueExistingPeriodicTasksAfterShutdownPolicy
public boolean getContinueExistingPeriodicTasksAfterShutdownPolicy()
既存の定期的なタスクの実行を継続するかどうかに関するポリシーを取得します。このexecutorでshutdown
が実行されたときでも取得します。 この場合、これらのタスクが終了するのは、shutdownNow
の実行時か、すでにシャットダウンが実行されポリシーをfalse
に設定したあとに限られます。 この値はデフォルトでfalse
です。- 戻り値:
- シャットダウン後に続行する場合は
true
- 関連項目:
setContinueExistingPeriodicTasksAfterShutdownPolicy(boolean)
-
setExecuteExistingDelayedTasksAfterShutdownPolicy
public void setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean value)
既存の遅延タスクを実行するかどうかに関するポリシーを設定します。このexecutorでshutdown
が実行されたときでも取得します。 この場合、これらのタスクが終了するのは、shutdownNow
の実行時か、すでにシャットダウンが実行されポリシーをfalse
に設定したあとに限られます。 この値はデフォルトでtrue
です。- パラメータ:
value
-true
の場合はシャットダウン後に実行し、それ以外の場合は実行しない- 関連項目:
getExecuteExistingDelayedTasksAfterShutdownPolicy()
-
getExecuteExistingDelayedTasksAfterShutdownPolicy
public boolean getExecuteExistingDelayedTasksAfterShutdownPolicy()
既存の遅延タスクを実行するかどうかに関するポリシーを取得します。このexecutorでshutdown
が実行されたときでも取得します。 この場合、これらのタスクが終了するのは、shutdownNow
の実行時か、すでにシャットダウンが実行されポリシーをfalse
に設定したあとに限られます。 この値はデフォルトでtrue
です。- 戻り値:
- シャットダウン後に実行する場合は
true
- 関連項目:
setExecuteExistingDelayedTasksAfterShutdownPolicy(boolean)
-
setRemoveOnCancelPolicy
public void setRemoveOnCancelPolicy(boolean value)
取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを設定します。 この値はデフォルトでfalse
です。- パラメータ:
value
-true
の場合は取消し時に削除し、それ以外の場合は削除しない。- 導入されたバージョン:
- 1.7
- 関連項目:
getRemoveOnCancelPolicy()
-
getRemoveOnCancelPolicy
public boolean getRemoveOnCancelPolicy()
取り消されたタスクを取消し時にワーク・キューからすぐに削除するかどうかに関するポリシーを取得します。 この値はデフォルトでfalse
です。- 戻り値:
- 取り消されたタスクがただちにキューから削除される場合は
true
- 導入されたバージョン:
- 1.7
- 関連項目:
setRemoveOnCancelPolicy(boolean)
-
shutdown
public void shutdown()
順序正しくシャットダウンを開始します。以前に送信されたタスクが実行されますが、新規タスクは受け入れられません。 シャットダウン後に呼出しを実行しても、効果はありません。このメソッドは、以前に送信されたタスクが実行を完了するのを待機しません。 これを実行するには、
awaitTermination
を使ってください。ExecuteExistingDelayedTasksAfterShutdownPolicy
がfalse
に設定されていた場合、遅延時間が経過していない既存の遅延タスクは取り消されます。 また、ContinueExistingPeriodicTasksAfterShutdownPolicy
がtrue
に設定されていないかぎり、既存の定期的なタスクの以後の実行は取り消されます。- 定義:
shutdown
、インタフェース:ExecutorService
- オーバーライド:
shutdown
、クラス:ThreadPoolExecutor
- 例外:
SecurityException
- セキュリティ・マネージャが存在する状況でこのExecutorServiceのシャットダウンを実行すると、呼出し側には変更を許可しないスレッドを操作できる場合。これは、RuntimePermission
("modifyThread")
を保持しないか、セキュリティ・マネージャのcheckAccess
メソッドがアクセスを拒否するためである。
-
shutdownNow
public List<Runnable> shutdownNow()
実行中のアクティブなタスクすべての停止を試み、待機中のタスクの処理を停止し、実行を待機していたタスクのリストを返します。 これらのタスクは、このメソッドから戻るときに、タスク・キューからドレイン(削除)されます。このメソッドは、アクティブに実行中のタスクが終了するのを待機しません。 これを実行するには、
awaitTermination
を使ってください。実行中のアクティブなタスク処理を停止するために最善の努力をすること以上の保証はありません。 この実装は、
Thread.interrupt()
を介してタスクを中断します。割り込みに応答しないタスクは決して終了しない可能性があります。- 定義:
shutdownNow
、インタフェース:ExecutorService
- オーバーライド:
shutdownNow
、クラス:ThreadPoolExecutor
- 戻り値:
- 実行が開始されなかったタスクのリスト。 このリストの各要素は
ScheduledFuture
です。schedule
メソッドの1つを介してサブ・ミットされたタスクの場合、要素は返されたScheduledFuture
と同じになります。execute
を使用して送信されたタスクの場合、要素はゼロ遅延ScheduledFuture
になります。 - 例外:
SecurityException
- セキュリティ・マネージャが存在する状況でこのExecutorServiceのシャットダウンを実行すると、呼出し側には変更を許可しないスレッドを操作できる場合。これは、RuntimePermission
("modifyThread")
を保持しないか、セキュリティ・マネージャのcheckAccess
メソッドがアクセスを拒否するためである。
-
getQueue
public BlockingQueue<Runnable> getQueue()
このexecutorで使用するタスク・キューを返します。 タスク・キューへのアクセスは、デバッグおよび監視を主な目的としています。 このキューは、アクティブに使用されている可能性があります。 タスク・キューを取り出しても、キューに入っているタスクの実行は妨げられません。このキューの各要素は
ScheduledFuture
です。schedule
メソッドの1つを介してサブ・ミットされたタスクの場合、要素は返されたScheduledFuture
と同じになります。execute
を使用して送信されたタスクの場合、要素はゼロ遅延ScheduledFuture
になります。このキューに対する反復処理では、タスクが実行順序でトラバースされることは保証されません。
- オーバーライド:
getQueue
、クラス:ThreadPoolExecutor
- 戻り値:
- タスク・キュー
-
-