Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/09/2008, 13:45
razer
 
Fecha de Ingreso: marzo-2008
Mensajes: 237
Antigüedad: 16 años, 10 meses
Puntos: 6
conjunto de hilos problema

hola, tengo un problemita

estoy ejecutando en un while una cantidad n de threads. lo que diferencia un thread de otro, son valores en los constructores.
osea, vendria a tener algo asi:

Código:
i=0;
while(condicion)
{
String p = pL.get(i);
ClaseThreadx pe = new ClaseThreadx(p);
pe.start();
i++;
}
pL.get es una lista que contiene valores y los va sacando.
OK, Mi problema es el siguiente.
cuando termina de ejecutar todos los threads, abajo, necesito quedarme a esperar hasta que todos los threads terminen. Y cuando terminen, hago otra cosa.
El tema es que no se como hacerlo.

Para saber cuando un thread termina, yo venia usando el metodo isAlive, donde devuelve "false" si termino. pero mi problema es, como hacer para detectar cuando TODOS terminan ? la variable que instancia la clase es una para todos (y vector de instancias de clases no creo que se pueda, o si se puede no lo se hacer).
Entonces, como puedo saber cuando todos terminan ? osea, cuando cada thread devuelve isAlive false, osea, como detectar cada thread..
si usaria variables diferentes para instanciar la clase del thread es facil, pero uso 1 sola.
ese while corre n threads donde n es siempre diferente, no tengo un numero fijo.

entonces.... alguien sabe?

pd: ademas de esos threads tengo otros corriendo, asi que un metodo o algo para saber cuando TODO (absolutamente TODO) termina, no me sirve..