¿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