In meiner Webanwendung habe ich einen Dienst erstellt, der einen ExecutorService
mit ThreadPool fester Größe verwendet. Ich verwende das gleiche ExecutorService
während der gesamten Anwendungslebenszeit.ExecutorService elegant in webapp herunterfahren?
private static ExecutorService pool = Executors.newFixedThreadPool(8);
Alle in Tomcat ausgeführt wird, die mir die folgende Fehlermeldung gibt, während shuting nach unten:
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.
ich erkennen, ich brauche die ExecutorService zum Herunterfahren, bevor unten tomcat shuting. SOMS-Thread spricht bereits darüber, aber ich konnte keinen sauberen Weg finden, damit umzugehen.
Sollte ich eine ShutdownHook
wie vorgeschlagen @ Tim-Bender in Graceful shutdown of threads and executor verwenden? Oder sollte ich stattdessen einen CachedThreadPool verwenden?
Genau das, was ich wissen musste –