Потоки демоны в Java

Потоки демоны в JavaВы можете превратить поток в демон следующим вызовом:

t.setDaemon(true);

Правда, в таком потоке нет ничего «демонического«. Демон — это просто поток, который не имеет других целей в жизни, кроме служения другим. Примерами могут служить потоки таймера, посылающие регулярные «тики» другим потокам, или потоки, очищающие состояние элементов кэша. Когда остаются только потоки-демоны, виртуальная машина завершает работу. Нет смысла продолжать выполнение программы, когда все оставшиеся потоки являются демонами.

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