Что такое daemon поток

«Что такое daemon поток» — вопрос из категории Многопоточность, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Daemon-поток (фоновый поток) — это поток, который автоматически завершается при завершении работы основного приложения. В отличие от обычных потоков, JVM не ждёт завершения daemon-потоков.

Особенности:

  • Создаётся через thread.setDaemon(true) перед запуском (thread.start()).
  • Используется для фоновых задач (логирование, мониторинг), которые не критичны для работы приложения.
  • Нельзя делать daemon-поток, если он выполняет важные операции (например, сохранение данных).

Пример:

val daemonThread = Thread {
    while (true) {
        println("Daemon thread running...")
        Thread.sleep(1000)
    }
}.apply { 
    isDaemon = true 
    start() 
}
// При завершении main-потока daemonThread тоже завершится.