スケジュールされたthreadpoolexecutorのスレッドプールサイズは増え続けていますか?
いいえ。http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ScheduledThreadPoolExecutor.htmlから:
.... it acts as a fixed-sized pool using corePoolSize threads ...
スレッドの総数に制限はありますか?
はい。上記を参照。
アイドルスレッドの総数に制限があるようです。
どうしてそう思ったのかわかりません。ドキュメント(またはテストした場合の動作)には、それを意味するものは何もありません。
そして、アイドルスレッドのこの概念は、長時間実行されているタスク (スレッド) が破棄され、必要に応じて再作成される可能性があることを意味しますか?
タスク != スレッド; この質問はあまり意味がありません。タスクは、実行中ずっとそのスレッドを占有します。したがって、実行時間の長いタスクはスレッドを長時間占有したままにし、その間に他のスケジュールされたタスクで使用できるスレッドの数を減らします。タスクは、executor によって破棄されたり再作成されたりすることはありません。executor はタスクを停止しようとするかもしれませんが、それは実行中のすべてのタスクを介しshutdownNow()
てなど、明示的にそうするように指示した場合に限られます。interrupt()
無関係ですが、固定サイズのプール内のスレッドは、固定サイズのプールであるため、破棄または再作成されません。