管理実行サービスのスレッドプール内のスレッドは以下の2種類の方法で破棄されます。
キープアライブ時間
スレッドの存続時間
管理スケジュール実行サービスのスレッドプール内のスレッドは以下の方法で破棄されます。
スレッドの存続時間
キープアライブ時間
管理実行サービスのスレッドプール内のスレッドのうち、コアプールサイズを超える数のスレッドは、アイドル状態になっている期間がキープアライブ時間を過ぎると破棄されます。
アイドル状態のスレッドが破棄されるまでの時間(キープアライブ時間)は管理実行サービスの定義項目「キープアライブ時間」で設定できます。
キープアライブ時間に0を指定した場合、キープアライブ時間を過ぎることによるスレッドの破棄は行われなくなります。
注意
管理スケジュール実行サービスではコアプールサイズを超える数のスレッドが作成されないため、キープアライブ時間を過ぎることによるスレッドの破棄は行われません。
スレッドの存続時間
管理実行サービスおよび管理スケジュール実行サービスのスレッドプール内の全てのスレッドは、作成されてからスレッドの存続時間に指定された時間を過ぎると破棄されます。
スレッドが作成されてから破棄されるまでの時間(スレッドの存続時間)は管理実行サービスの定義項目「スレッド存続時間」および管理スケジュール実行サービスの定義項目「スレッド存続時間」で設定できます。
スレッドの存続時間に0を指定した場合、スレッドの存続時間を過ぎることによるスレッドの破棄は行われなくなります。
スレッドの存続時間によるスレッドの破棄は以下のタイミングで行われます。
タスクの処理完了時にスレッド作成からの時間がスレッドの存続時間を過ぎた場合
アイドル状態になっている期間がスレッドの存続時間を過ぎた場合
参考
タスクを実行していない時もスレッドプール内にスレッドを保持して新しいタスクの処理をすぐに開始させたい場合は、スレッドの存続時間に0を指定してください。
タスクを実行していない時はスレッドプール内のスレッドを破棄してリソースを解放させたい場合は、スレッドの存続時間に1以上の値を指定してください。