Sobes.tech
Назад к вопросам
Junior — Middle
96

Можете объяснить, что такое демон-поток и чем он отличается от обычного потока?

Ответ от нейросети

sobes.tech AI

Демон-поток (daemon thread) в Java — это поток, который работает в фоновом режиме и не препятствует завершению работы JVM. Основное отличие от обычного (пользовательского) потока в том, что JVM автоматически завершает работу, когда все пользовательские потоки завершены, даже если демоны всё ещё работают.

Особенности демон-потоков:

  • Они предназначены для выполнения фоновых задач, например, сборщик мусора.
  • Не блокируют завершение программы.
  • Можно установить поток как демон с помощью метода setDaemon(true) до запуска потока.

Пример:

Thread daemonThread = new Thread(() -> {
    while (true) {
        System.out.println("Демон-поток работает");
        try {
            Thread.sleep(1000);
        } catch (InterruptedException e) {
            break;
        }
    }
});
daemonThread.setDaemon(true);
daemonThread.start();

System.out.println("Основной поток завершился");

В этом примере, когда основной поток завершится, JVM остановит демон-поток автоматически.