Foros del Web » Programación para mayores de 30 ;) » Java »

Grupos de hilos

Estas en el tema de Grupos de hilos en el foro de Java en Foros del Web. Hola, mi intencion es crear un grupo de hilos con ThreadGroup. Los hilos son instancias de una clase, en la cual se ejecuta un bucle, ...
  #1 (permalink)  
Antiguo 22/09/2010, 02:58
 
Fecha de Ingreso: febrero-2010
Mensajes: 15
Antigüedad: 14 años, 9 meses
Puntos: 0
Grupos de hilos

Hola, mi intencion es crear un grupo de hilos con ThreadGroup. Los hilos son instancias de una clase, en la cual se ejecuta un bucle, mi intencion es esperar desde la clase donde inicio el grupo de hilos a que los hilos lleguen a 50 iteraciones, y pararlos para intercambiar datos entre ellos. Una vez realizado el intercambio, dejarlos que continuen el bucle por donde se quedaron.

Para ello ejecuto lo siguiente:
Código:
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)
				{}
			}
				
			}
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.

Gracias

Etiquetas: hebras, hilos, threadgorup, threads
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:50.