Wie schalte ich alle Executors aus, wenn ich eine Anwendung beende?

Laut Brian Goetz's Java Concurrency in der PraxisDie JVM kann erst beendet werden, wenn alle (Nondaemon-) Threads beendet wurden. Wenn ein Executor nicht heruntergefahren wird, kann die JVM möglicherweise nicht beendet werden.

Das heißt System.exit (0) funktioniert nicht unbedingt wie erwartet, wenn Executors in der Nähe sind. Es scheint notwendig, eine Art zu setzen

public void stop() { exec.shutdown() }

Methoden für alle Klassen, die Executors enthalten, und rufen Sie sie dann auf, wenn die Anwendung beendet werden soll. Ist dies der einzige Weg, oder gibt es eine Art Abkürzung, um alle Executors auszuschalten?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage