Поток все еще существует, если JVM падает? - PullRequest
1 голос
/ 20 сентября 2011

Мне задавали этот вопрос во время интервью, кто-нибудь знает?

Ответы [ 5 ]

6 голосов
/ 20 сентября 2011

Если поток работает, JVM не аварийно завершился.

Однако иногда люди неправильно описывают любое исключение, которое выдается, как сбой.Если это именно то, что имел в виду интервьюер, я бы сказал, что поток все еще работает, потому что исключение было перехвачено и не было переброшено.

6 голосов
/ 20 сентября 2011

Если JVM завершает работу в результате сбоя, поток больше не будет существовать. Если сбой вызван нехваткой памяти или подобной ошибкой, он может существовать или не существовать в зависимости от конкретных обстоятельств.

4 голосов
/ 20 сентября 2011

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

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

Аналогично, если вы убьете процесс, все дочерние потоки закроются, независимо от их типа (демон / не демон).

3 голосов
/ 20 сентября 2011

Представь, что ты JVM.Вы выходите на дорогу, на самом деле не смотрите куда идете, и вы попадаете в смертельную авариюЗа мгновение до того, как случилось несчастье, у тебя на уме было 30 вещей.Вообразите эти вещи в своем уме как «нити»

Когда вас сметает с дороги, думаете ли вы, что вы все еще будете в сознании и будете думать обо всех этих вещах?

0 голосов
/ 20 сентября 2011

Экземпляр выполнения JVM - это процесс.

Потоки являются частью процесса.

Если процесс мертв, все, что было его частью, мертво.

Таким образом, когда ваша JVM падает или принудительно завершается, все созданные ею потоки также перестают выполняться.

Более того, JVM завершается автоматически, когда единственные потоки, работающие внутри него, являются потоками демона.

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