Thread parar uma Thread até que outra termine o serviço

Salve GUJ,

Estou precisando resolver um problema com Threads mas não estou conseguindo é o seguinte:

Thread t1 = new Thread(){...
t1.start();
System.out.println("Só imprimir isso depois que a t1 terminar a execução");

Alguem conhece alguma maneira de fazer isso ai em cima, ou seja eu quero que o processo de imprimir a linha só ocorra depois que a t1 terminar todo o seu processamento.

Muito obrigado pela ajuda…

Você precisa usar join.

thingol, valeu pela dica eu vou dar uma procurada pra ver como funciona esse join porque eu nunca usei se vc puder me passar algum exemplo…

class ThreadExemplo implements Runnable {
    public void run () {
        System.out.println ("Thread Exemplo processando ...");
        try { Thread.sleep (3000); } catch (InterruptedException ex) {} // simulando processamento pesado
        System.out.println ("Thread Exemplo acabou o processamento.");
    }
}

class ExemploJoin {
    public static void main (String[] args) {
        System.out.println ("Início");
        Thread th = new Thread (new ThreadExemplo());
        System.out.println ("Iniciando a thread exemplo...");
        th.start();
        System.out.println ("Esperando a thread exemplo acabar de processar...");
        try { th.join(); } catch (InterruptedException ex) {} 
        System.out.println ("Fim.");
    }
}

Deve imprimir o seguinte:

Início
Iniciando a thread exemplo...
Esperando a thread exemplo acabar de processar...
Thread Exemplo processando ...
Thread Exemplo acabou o processamento.
Fim.

thingol, valeu era isso mesmo que eu estava precisando, só encontrei um problema que eu não consegui resolver, vamos supor que a Thread va atualizando um componente Swing tipo um JLabel, isso para informar o usuário o que esta acontecendo com o processo

Thread t1 = new Thread(){
	@Override
	public void run() {
		for(int i = 0; i< 100; i++){
			label.setText("Processando registro " + i);
			try{Thread.sleep(100);}catch(Exception rr){}
		}
	}
};

Quando eu chamo essa Thread com “join” do Action de um Botao ele não atualiza o JLabel e só vai imprimir o último registro processado no caso o 99. Se eu não colocar o join ai sim ele vai exibindo todos os registros um a um o que exibe que esse proceso está realmente fazendo alguma coisa.

public void actionPerformed(ActionEvent e) {
                t1.start();
	try{t1.join();}catch(Exception err){}
	System.out.println("FOI");
}

Alguem sabe como eu posso usar o Join junto com Telas em Swing para que o processo informe o que está acontecendo e para que a Thread que chamou o processo só continue depois que o proceso terminar