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

Segue um codigo so pra testar…

[code]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");
	
}

}
[/code]

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?

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");

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?

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.

[quote=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.[/quote]

Putss valeuuu de mais Vini!!!