Поток-демон (Daemon Thread) в Java — это фоновый поток, который не мешает завершению работы виртуальной машины (JVM). JVM завершает выполнение, когда все не-демон потоки завершены. Если остаются только потоки-демоны, JVM также завершается.
Основные характеристики:
setDaemon(true) до его запуска. Переключение статуса после запуска вызовет исключение IllegalThreadStateException.Пример создания и использования:
java
Сравнение с пользовательскими потоками:
| Характеристика | Поток-демон (Daemon Thread) | Пользовательский поток (User Thread) |
|---|---|---|
| Цель | Фоновые задачи, сервисы | Основная логика приложения, пользовательские операции |
| Завершение JVM | Не предотвращает завершение JVM | Предотвращает завершение JVM |
| Жизненный цикл | Завершается вместе с JVM | Завершается только после выполнения своих задач |
| Наследование статуса | Наследует от родительского потока | Наследует от родительского потока |
| Назначение статуса | Явно setDaemon(true) до start() | По умолчанию setDaemon(false) |
Важно использовать потоки-демоны с осторожностью, так как они могут быть неожиданно завершены JVM. Для задач, требующих гарантированного завершения (например, сохранение данных), следует использовать пользовательские потоки.