método join() de um Objeto Thread[Resolvido]

4 respostas
evertonsilvagomesjav

Segue um codigo so pra testar..

package com.certificação.thread;

public class ThreadTeste implements Runnable {

	
	public static void main(String[] args) {
						
		try {
			
			new Thread(new ThreadTeste()).start();
			
			System.out.println(Thread.currentThread().getName());
			
			Thread.currentThread().join();
						
			System.out.println("main");
			
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		
	}

	@Override
	public void run() {
		System.out.println("teste");
		System.out.println("teste");
		System.out.println("teste");
		System.out.println("teste");
		
	}
	
	
}

Esse codigo esta anexando meu thread main no outro thread criado correto? Mas apos á execução do método run() nao é exibido o "teste main" pq?

4 Respostas

ViniGodoy

Você está dando o join() na main thread, e não na thread disparada. Se quer corrigir, troque seu código para:

Thread t = new Thread(new Teste());
t.start();
System.out.println(Thread.currentThread().getName());

t.join();
System.out.println("main");
evertonsilvagomesjav

Pois entao ele anexa main ao final da thread disparada num é n? O método join() anexa a thread corrente ao final de uma outra Thread né n?

ViniGodoy

O join() faz com que a thread que chamou o join() espere a execução da thread que recebeu o join().

No caso do seu código, a main thread chamou o join() nela mesma… nesse caso, o join() não faz nada.

No código que montei, a main thread chamou o join() na thread disparada, fazendo com que ela esperasse a impressão da thread ali criada.

evertonsilvagomesjav

ViniGodoy:
O join() faz com que a thread que chamou o join() espere a execução da thread que recebeu o join().

No caso do seu código, a main thread chamou o join() nela mesma… nesse caso, o join() não faz nada.

No código que montei, a main thread chamou o join() na thread disparada, fazendo com que ela esperasse a impressão da thread ali criada.

Putss valeuuu de mais Vini!!!

Criado 16 de julho de 2010
Ultima resposta 16 de jul. de 2010
Respostas 4
Participantes 2