私のWebアプリでは、ExecutorService
固定サイズのThreadPoolを使用するサービスを作成しました。ExecutorService
私はアプリケーションの存続期間全体にわたって同じものを再利用します。
private static ExecutorService pool = Executors.newFixedThreadPool(8);
すべてがTomcatで実行されているため、シャットダウン中に次のエラーが発生します。
appears to have started a thread named [pool-1-thread-1] but has failed to stop it. This is very likely to create a memory leak.
私は、Tomcatをシャットダウンする前にExecutorServiceをシャットダウンする必要があることを認識しています。Soms SOスレッドはすでにこれについて話しますが、これを処理するためのクリーンな方法を見つけることができませんでした。
スレッドとエグゼキュータのグレースフルシャットダウンでShutdownHook
、提案された@ Tim-benderを使用する必要がありますか?または、代わりにCachedThreadPoolを使用する必要がありますか?