Что значит быть демоном? - PullRequest
5 голосов
/ 19 мая 2009

Я полностью осознаю влияние пометки потока как потока демона при выходе из JVM (если все потоки, не являющиеся демонами, выйдут из JVM.)

Существуют ли другие побочные эффекты для установки потока в качестве демона?

(в качестве полного отступления, которое на самом деле не имеет значения, за исключением семантики, это означает, что поток демона в данном случае не задним числом: не должен ли поток демона поддерживать JVM живым ... например, если я написал свой собственного HTTP-демона и запустив его, не хочу ли я, чтобы JVM оставалась в живых до тех пор, пока этот поток жив? Или есть какая-то другая семантика для термина «демон»?)

Ответы [ 2 ]

4 голосов
/ 19 мая 2009

Если у вас есть это, это означает, что поток отсоединен и будет работать до тех пор, пока JVM работает, если вы не остановите его явно. По спецификации JVM продолжает работать до тех пор, пока работает любой поток не -демон.

Кроме того, это ничего не значит.

Вы можете утверждать, что это наоборот - в конце концов, shutdown (8) убивает процессы демона - но в противном случае JVM должна действовать как хорошо управляемый процесс, что означает, что люди должны иметь возможность ожидать это прекратить без необходимости быть убитым. Таким образом, эта спецификация является проектным решением, основанным на том, каким будет более распространенный вариант использования.

3 голосов
/ 19 мая 2009

Поток демона - это служба для других потоков. Это всего лишь демон для самого JVM, а не для внешнего мира. таким образом, если существуют только демоны, они больше не нужны. Если вам нужен демон http, вы просто пишете сервер http с обычными потоками и вызываете его как демон, используя набор инструментов своей операционной системы для запуска приложений в качестве демона.

Создание потока демона в jvm не является потоком демона для os. Демоны обычно представляют собой бесконечные циклы, и вы не хотите, чтобы ваш jvm продолжался бесконечно, в то время как все, что у вас работает, - это несколько демонов, которые ожидают ввода (что не дано).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...