Вопрос с собеседования · Java

Что верно про daemon-потоки?

MiddleМногопоточность
Коротко

JVM завершается, когда остались только daemon-потоки; они обрываются без выполнения finally. Флаг ставится до start(), иначе IllegalThreadStateException.

  • На приоритет daemon не влияет
  • Не годится для работы, которую нужно довести до конца: запись файла, отправка
  • Потоки, созданные daemon-потоком, тоже daemon по умолчанию

А ещё Корректное завершение — shutdown hook и остановка пулов

Подробно

Флаг daemon влияет только на условие завершения JVM, а не на приоритет: приоритет задаётся отдельно через setPriority. Ключевое практическое следствие — daemon-поток нельзя использовать для работы, которую обязательно нужно довести до конца: при выходе JVM он обрывается, finally и try-with-resources могут не отработать, а частично записанный файл останется битым. Для фоновых задач с обязательным завершением используют обычные потоки и явный shutdown.

Что хотят услышать

  • Влияние на завершение JVM.
  • Когда ставить флаг.
  • Почему нельзя доверять daemon важную работу.

Частые ошибки

  • Писать в daemon-потоке данные, которые нельзя потерять.
  • Путать daemon-флаг с приоритетом потока.

Проверьте себя

Несколько верных вариантов. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✓JVM завершается, когда остаются только daemon-потоки
  • ✓setDaemon нужно вызвать до start(), иначе будет IllegalThreadStateException
  • ✗Daemon-поток имеет более низкий приоритет планирования и всегда вытесняется обычными потоками
  • ✓При завершении JVM daemon-поток обрывается, и его блоки finally могут не выполниться

Что спросят дальше

  • Какие потоки в JVM являются daemon по умолчанию?
  • Как корректно дождаться завершения фоновой работы при остановке приложения?

Разбор темы

Связанные вопросы

Партнёр платформы

Разбор собеседования с sotto

После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.

Разбор собеседования