Dúvida método join() em Thread [ RESPONDIDO - PELO MENOS EU ENTENDI ]

Estava estudando Threads para a certificação e ainda não entendi direito como funciona o método join() de Thread…

Axei meio ambígua a descrição do método… já no livro da Kathy

Aí já deu pra endender um pouco melhor… só fiquei com dúvida numa coisa: A Thread que está sendo executada no momento espera a que chamou join() ou é o contrário ?
Se alguém puder me explicar melhor ou me dar um exemplo eu vou ficar agradecido :smiley:

Abraços

quando vocÊ dar um join ai vc está dizendo… olha a thread atual so vai executar depois que o join terminar.

..
public static void main(String..args){
.... // aqui tem o codigo de criacao da sua thread 
try{
th.join();
}catch(Exception e){}
System.out.println("XX");
}

ele ta dizendo ai thread main… so é executada apos o join concluir sua tarefa… ng antes disso pode executar… :smiley:

Acho que “join” é mais fácil explicar com um desenho. Mas basicamente:

  • Seu programa está executando na thread X (pode ser a thread principal do sistema, que é iniciada pelo próprio Java)
  • Essa thread X inicia uma thread Y, usando algo como:
Thread Y = new Thread(new Runnable () { public void run() { ... } });
Y.start(); // iniciando a thread Y
...
  • A thread X faz alguma coisa, e então quer esperar a thread Y terminar (morrer). Então a thread X tem de fazer:
...
System.out.println ("Eu sou a thread X e vou esperar a thread Y terminar (se é que ela já não terminou)");
Y.join(); // isto faz com que a thread X pare e espere até a thread Y terminar.
System.out.println ("Eu sou a thread X e esperei até que a thread Y terminasse.");
3 curtidas

Olá!

Legal a explicação agora deu pra entender :smiley:

Abraços

Q blz, pensei em postar uma dúvida semelhante hj…mas problemas resolvido ja…:smiley:

flw

ah, será q alguem podia me dar uma mão com sincronização de um bloco de código??

flw, um abraço!

Boa explica’cao do metodo join, parabens.

[size=24]Excelente explicação![/size] :idea:

boa explicação! entendi :slight_smile:

Gostei da explicação. Obrigada.