Vale, yo mismo me contesto.
No hay nada como volver a leer detenidamente.
He aqui la solución al problema de cómo lanzar un hilo y que espere a que se termine otro.
Código:
class Hilo1 extends Thread{
public void run(){
try{
System.out.println("Hilo1 comienza ...");
Hilo2 h2 = new Hilo2();
h2.start();
h2.join();
System.out.println("Hilo1 finaliza ...");
}catch(Exception e){}
}
}
class Hilo2 extends Thread{
public void run(){
try{
System.out.println("Hilo2 comienza ...");
for (int i=0; i<10; i++){
System.out.println("Iter: "+(i+1));
sleep(1000);
}
System.out.println("Hilo2 finaliza ...");
notify();
}catch(Exception e){}
}
}
public class MiPrueba5 {
public static void main(String args[]){
try{
System.out.println("Comienzo ...");
Hilo1 h1 = new Hilo1();
h1.start();
h1.join();
System.out.println("Finalizo ...");
}catch(Exception e){}
}
}
La salida por pantalla debería ser:
Comienzo ...
Hilo1 comienza ...
Hilo2 comienza ...
Iter: 1
Iter: 2
Iter: 3
Iter: 4
Iter: 5
Iter: 6
Iter: 7
Iter: 8
Iter: 9
Iter: 10
Hilo2 finaliza ...
Hilo1 finaliza ...
Finalizo ...
Muchas gracias por la ayuda GreenEyed, +Karma para ti xD