私はScheduledThreadPoolExecutorを使用していますが、使用可能なスレッド数に対して未処理の要求が多すぎると思われます (はい...おそらくスレッド数を調整する必要があります)。より具体的には、スケジュールされたタスクが起動した後、タスクがスレッド プールの BlockingQueue に座って、使用可能なスレッドを待機している時間を知りたいと思います。ScheduledThreadPoolExecutor がタスクを内部キュー ( ScheduledThreadPoolExecutor.super.queue.add(task)
) に追加するときにフックが必要なようですが、JDK の API とコードを見ると、簡単な方法ではないようです。
考えや提案はありますか?