Как правильно использовать java.lang.Terminator?
Что именно делает этот класс?
Что такое "отключение, вызванное прерыванием"?
Где вы использовали это в своей программе или что может быть хорошим вариантом использования для этого класса?
3 ответа
Взять ваши очки по одному:
Что делает этот класс? Он обрабатывает сигналы завершения, полученные из операционной системы.
Что такое "отключение при срабатывании"? Выключение JVM вызвано тем, что операционная система посылает сигнал процессу Java, например, когда вы выключаете компьютер.
Как это можно использовать? Он не предназначен для использования в ваших программах, поскольку он является частным пакетом и используется самой JVM для обработки сигналов завершения, полученных из операционной системы.
Это частный пакет, так что вы не должны его использовать. Лучше загляните на http://java.sun.com/j2se/1.4.2/docs/guide/lang/hook-design.html если вы хотите выполнить код при завершении работы.
Он регистрирует обработчики сигналов для HUP (зависание), INT (прерывание) и TERM (завершение) (см. Список сигналов). Он закрывает приложение, вызывая System.exit() со значением sig.getNumber() + 128, то есть 1+128=129 (HUP), 2+128=130 (INT), 15+128=143 (TERM). Поэтому всякий раз, когда вы получаете одно из этих значений выхода, вы знаете, что приложение было закрыто Terminator после получения одного из этих сигналов от ОС. Обратите внимание, что KILL обрабатывается операционной системой напрямую.
Это внутренний класс, поэтому нет сценария использования.