Estava dando uma “olhada” na API e me deparei com isto “Every thread has a priority. Threads with higher priority are executed in preference to threads with lower priority. Each thread may or may not also be marked as a daemon”
Não entendo o que é ou o que não é ter uma thread marca como daemon
Daemons são processos/threads executados em background e geralmente são responsáveis por capturar e responder requisições de serviços. Por exemplo, pode existir um daemon para capturar requisições efetuadas ao sistema.
A classe Thread possui os métodos isDaemon() e setDaemon(boolean) para verificar e tornar uma thread um daemon.
Geralmente é uma Thread que fica no background esperando alguma coisa acontecer, por exemplo um Listener de conexões em um servidor (que espera uma conexão e manda pra alguém responsável). Esse tipo de thread geralmente tem um while(true) e o código de ‘espera’ fica dentro, então se você define ela como daemon, quando não houver mais nenhuma outra ela é terminada automaticamente pro seu programa não ficar num loop infinito…
ViniGodoy
O mais importante da definição, para quem programa é:
Se só deamons threads sobrarem, sua aplicação finalizará normalmente.
Se threads não deamon sobrarem, a sua aplicação continua rodando, até que essas threads finalizem, ou que um System.exit(0); seja usado.
Fabio_Kym_Nascimento
Tentando simplificar a respota: Uma thread marcada como daemon não impede a finalização do sistema, enquanto threads não marcadas como daemon forçam o sistema a aguarda-las para finalizar.