Avatar ·

¿Qué es un daemon thread en Java y en qué se diferencia de uno normal?

¡Hola a todos! Empecé a estudiar multithreading en Java y me topé con el concepto de "daemon thread". Leí la documentación, pero no terminé de entender cuál es su particularidad.

Tengo un ejemplo simple: ejecuto un thread que imprime un mensaje cada segundo. El thread principal (main) termina su trabajo después de 3 segundos. Espero que el programa termine, pero continúa ejecutándose hasta que lo detengo manualmente.

public class DaemonTest {
    public static void main(String[] args) throws InterruptedException {
        Thread worker = new Thread(() -> {
            while (true) {
                System.out.println("Estoy trabajando...");
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    break;
                }
            }
        });
        worker.start();
        
        Thread.sleep(3000);
        System.out.println("Main terminó");
    }
}

¿Por qué el p