Anotações OCJP

Minhas anotações para o exame da Oracle (OCJP)

O curioso caso das Threads do tipo Daemon

Quando se começa a estudar Thread em java, algumas perguntas intrigantes ficam no ar: De que forma uma thread Daemon funciona? Qual seria o melhor exemplo prático de funcionamento destas threads?
Um conjunto de threads pode ser iniciada e colocada em fila para execução pelo escalonador. Threads comuns (não Daemon) são executadas até o fim,logo quando a última thread tem sua execução finalizada a JVM é encerrada.
Porém, certas threads não devem ter esta espera para o fim de sua execução, pois geralmente são threads que necessitam ser executadas a cada intervalo de tempo. Podemos definir estas threads como threads do tipo daemon.
Para definir uma thread como Daemon, basta chamar o método setDaemon(true) antes que se inicie a Thread (através do método start). Desta forma dizemos ao escalonador que não importa se esta thread será executada por completo e sim que ela deve ser executada enquanto outras threads não-Daemon estiverem em execução.
Abaixo segue um código que auxilia a compreensão de tudo que já foi falado:

class ClasseRotineira implements Runnable{
public void run(){
while(true){
try{
//gera um aviso na tela a cada 5s
Thread.sleep(5000);
System.out.println("+ 5s de execução");
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
}
class ClasseExecucao implements Runnable{
public void run(){
try{
//simula uma execucao demorada de 15s
Thread.sleep(15000);
System.out.println("fim da execução");
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
public class ClassePrincipal{
public static void main(String args[]){
System.out.println("Inicio classe principal");
Thread threadRot = new Thread(new ClasseRotineira());
Thread threadExec = new Thread(new ClasseExecucao());
//Modificando esta thread para daemon
threadRot.setDaemon(true);
threadRot.start();
threadExec.start();
}
}

Então é isso aí, bons estudos e até a próxima!

Anúncios

2 Respostas para “O curioso caso das Threads do tipo Daemon

  1. Pingback: O curioso caso das Threads do tipo Daemon | JornalJava

  2. Pingback: O curioso caso das Threads do tipo Daemon : JornalJava

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: