Получить доступ

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

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

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

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

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

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

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

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

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

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

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

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

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

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

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

Разбор темы

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

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем