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