Como desligar todos os executores ao sair de um aplicativo?

De acordo com o Java Concurrency na prática de Brian GoetzA JVM não pode sair até que todos os encadeamentos (nondaemon) tenham terminado, portanto, a falha ao encerrar um Executor pode impedir a saída da JVM.

Ou seja System.exit (0) não necessariamente funciona como esperado se houver Executors em volta. Parece necessário colocar algum tipo de

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

métodos para todas as classes que contêm executores e, em seguida, chamá-los quando o aplicativo está prestes a finalizar. Esta é a única maneira, ou existe algum tipo de atalho para desligar todos os executores?

questionAnswers(5)

yourAnswerToTheQuestion