8 Daemons¶
Daemons¶
En Java podemos especificar que un determinado hilo sea considerado como un hilo daemon (demonio), que posee la característica de que si es el único hilo que queda en ejecución en un programa, la JVM da por finalizado el programa, aunque el hilo demonio siga en ejecución.
Hilo demonio
Realizan una determinada tarea y luego se echan a dormir durante un cierto tiempo, en un bucle
Por tanto, los hilos demonios se emplean principalmente como hilos proveedores de servicios a otros hilos del programa. Normalmente poseen un bucle infinito que les hace estar siempre en ejecución, en espera de que le llegue una petición de servicio, o realizando una determinada tarea cada cierto tiempo. Un ejemplo típico de este comportamiento es el recolector de basura (garbage collector) de Java.
Para indicar que un determinado hilo debe comportarse como hilo demonio deberemos llamar a se método setDaemon()
antes de llamar al método start()
. Una vez que el hilo esté en ejecución no podremos modificar dicho comportamiento, y si llamamos al método setDaemon()
se producirá al excepción IllegalThreadStateException
.
Para saber si un hilo es un hilo demonio podemos llamar al método isDaemon()
.