Tenemos el método setPriority() para establecer un hilo de baja prioridad. Entonces, ¿por qué necesitamos un hilo daemon? ¿Cual es la diferencia entre ellos?
Normalmente, los hilos daemon no tienen nada que ver con la prioridad. En Java, por ejemplo, la JVM se apaga cuando finalizan todos los subprocesos no daemon del usuario. Marcar un hilo como un hilo daemon significa que se puede matar de forma segura cuando se cierra el JVM.
La prioridad se trata de la programación: acerca de con qué frecuencia un subproceso obtiene un segmento de tiempo en comparación con otros subprocesos que están listos para ejecutarse. Puede tener subprocesos daemon de baja prioridad o subprocesos daemon de alta prioridad. Puede tener subprocesos no daemon que también son de baja y alta prioridad.
Los conceptos son ortogonales (mutuamente independientes), al menos en el modelo de subproceso de Java.
En términos de cuándo crear un daemon de subprocesos, uso subprocesos de daemon para cualquier tarea que no me importa si se interrumpen cuando se cierra la JVM: hilos de keep-alive, procesadores de estadísticas, manejo de registro, etc. Todo lo que es crítico para la aplicación es un hilo que no es demonio que debe ser interrumpido o señalado específicamente para que se cierre de alguna manera.
¿De qué idioma estamos hablando aquí? – Gray
.. y qué OS ?? –
Recuerde aceptar mi respuesta si es útil. – Gray