2008-10-25 3 views

ответ

7

Я нашел статью об этом на IBM developerWorks. Когда OS поднимает сигнал на JVM, диспетчеру сигнал поток будет проходить сигнал на соответствующий обработчик

Revelations on Java signal handling and termination Крис Уайт, инженер-программист, IBM

+0

Ссылка не работает, похоже, она была расшифрована здесь: http://blog.intelligencecomputing.io/twitter/2348/revelations-on-java-signal-handling-and-termination – conorgriffin 2016-08-30 10:08:30

4

OS Сигналы по своей природе однопоточных, так что важно, чтобы все они обрабатывались в одном потоке. Таким образом, диспетчер - естественный способ добиться этого. Подумайте об этом, как о единственном потоке событий GUI для AWT.

В касательной заметке, если вы являетесь Linux и ваша JVM загружает собственную библиотеку, которая вставляет свои собственные обработчики сигналов, тогда вам нужно предварительно загрузить libjsig.so. Я обнаружил трудный путь, когда сторонняя сетевая библиотека периодически прерывала мои подключения с неверно направленными sigpipes.

Смежные вопросы