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