Метод Runtime.addShutdownHook
можно использовать для добавления перехватчика завершения работы, который по сути является незапущенным Thread
, который выполняется при завершении работы виртуальной машины Java.
Тем не менее, это территория, на которую следует действовать осторожно, так как она выполняется в очень чувствительное время жизненного цикла JVM. Из спецификаций API для метода Runtime.addShutdownHook
:
Отключающие крючки запускаются в деликатное время
в жизненном цикле виртуальной машины
и поэтому должен быть закодирован
защищаясь. Они должны, в
в частности, быть написано, чтобы быть
потокобезопасен и позволяет избежать тупиков
насколько это возможно.
В любом случае, обязательно прочитайте немного о том, как работают отключающие хуки, так как к ним, вероятно, не следует подходить без некоторой хорошей подготовки. Обязательно внимательно прочитайте Спецификацию API для метода Runtime.addShutdownHook
.
Вот пара статей, которые я нашел при поиске информации для этого ответа: