Dúvida método join() em Thread [ RESPONDIDO - PELO MENOS EU ENTENDI ]
8 respostas
L
Link_pg
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
quando vocÊ dar um join ai vc está dizendo… olha a thread atual so vai executar depois que o join terminar.
..publicstaticvoidmain(String..args){....// aqui tem o codigo de criacao da sua thread try{th.join();}catch(Exceptione){}System.out.println("XX");}
ele ta dizendo ai thread main… so é executada apos o join concluir sua tarefa… ng antes disso pode executar…
T
thingol3 likes
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:
ThreadY=newThread(newRunnable(){publicvoidrun(){...}});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.");
L
Link_pg
Olá!
Legal a explicação agora deu pra entender
Abraços
C
cs.santos0
Q blz, pensei em postar uma dúvida semelhante hj…mas problemas resolvido ja…
flw
ah, será q alguem podia me dar uma mão com sincronização de um bloco de código??