In meiner Anwendung verwende ich den ExecutorService häufig für asynchrone Aufrufe.
ExecutorService executorService = Executors.newFixedThreadPool(10);
Und ich beende den executorService nur, wenn die (webbasierte) Anwendung beendet wird. Kürzlich, als ich einige Probleme debuggte, sah ich diesen Code durch und fragte mich, ob es Fälle während der Ausführung des Programms geben kann, in denen ich gezwungen bin, den ExecutorService herunterzufahren und neu zu starten, d.h. einen neuen Satz von gepoolten Threads. Ich wollte also wissen, welche typischen Szenarien/unerwartetes Anwendungsverhalten mich dazu zwingen können?
Die typischen Ausnahmen, die ich überprüfe, sind ExecutionException, InterruptedException, CancellationException
aber ich tue nicht viel, außer sie zu protokollieren.