1
resposta

Uma Thread Daemon pode ser interrompida antes de ser finalizada?

No exercício proposto, no método main definimos uma classe com SetDaemon(true) conforme abaixo: faxineira.setDaemon(true);

Na classe fazLimpeza, tinhamos entre outras coisas o código: System.out.println(nome + " Fazendo a limpeza"); try { Thread.sleep(10000); } catch (InterruptedException e) {e.printStackTrace();} System.out.println(nome + " Saindo do banheiro");

Enquanto haviam outras Threads em execução, esses últimos 2 prints estavam sendo executados normalmente, porém, quando a última thread terminou e só a "faxineira" estava em execução aparentemente foi finalizada sem concluir.

Console: Faxineira Entrando no banheiro Faxineira Fazendo a limpeza Faxineira Saindo do banheiro Pedro Entrando novamente no banheiro Pedro Fazendo coisa demorada Faxineira Aguardando na porta Pedro Dando descarga Pedro Lavando a mao Pedro Saindo do banheiro Faxineira Entrando no banheiro Faxineira Fazendo a limpeza <<<---- Faltou o print "Faxineira Saindo do banheiro"

Pergunta: Esse é o comportamento normal de uma thread daemon? Se sim, existe alguma maneira de "forçar" para que ela conclua todos os passos antes de ser encerrada?

Obrigado!

1 resposta
O post foi fechado por inatividade após 3 meses. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software