Para ello ejecuto lo siguiente:
Código:
El problema esta en que nose como hacer para parar la clase main hasta que todas las hebras del grupo lleguen a 50 iteraciones y que estas me avisen de que han llegado.
public static void main(String[] args) {
ThreadGroup islas= new ThreadGroup("grupo");
Principal P1=new Principal(grupo,"1");
Principal P2=new Principal(grupo,"2");
P1.start();
P2.start();
System.out.println("Waiting for P1 and P2 to complete...");
synchronized(grupo)
{
try {
grupo.wait();
/*El problema esta en que esta instruccion solo espera a la hebra que se esta ejecutando en ese momento, y no a todas las hebras de la isla.*/
}
catch (Exception e) {}
}
intercambiarDatos();
synchronized(islas) {
try {
islas.notifyAll();
System.out.println("Notificamos que ya hemos hecho los cambios ");
}
catch (Exception e) {}
}
class Principal extends Thread{
public void run()
{
if(iteracion==50)
{
synchronized(this)
{
try{
this.notify();
System.out.println(" Notifico que este hilo esta libre ");
this.wait();
System.out.println(" Espero a que se hagan los cambios para poder continuar");
}catch(Exception e)
{}
}
}
Gracias


