Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/10/2009, 13:32
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 3 meses
Puntos: 260
Sonrisa Respuesta: Array de Threads

Hola,

En ese caso creo que lo mas simple es usar join.
Por ejemplo, pseudo-código:

Código Java:
Ver original
  1. Thread[100] lista;
  2. int i = 0;
  3.  
  4. while (resultado.next()) {
  5.   lista[i] = new Thread();
  6.   lista[i++].start();
  7. }
  8.  
  9. for (Thread a : lista) {
  10.   a.join();
  11. }
  12.  
  13. System.out.println("100 threads done");
Este ejemplo no corre, y no funcionaría por la cantidad de next(), es solamente una idea para implementarla con Collections sincronizados.

Ahora bien, en ese caso es porque no hay mayor interactividad de los threads ni con otro componente, ni entre ellos mismos. El thread principal, el que esta ejecutando la aplicación se detiene a esperar a cada uno de los threads por medio de 'unirse' con cada uno.

Si deseas que cada uno de los threads avise de su status al thread principal, o se comuniquen entre ellos, la programación es mucho mas complicada, puesto que tienes que implementar interfaces para que envien eventos (listeners), y agregarlos todos a una lista.

Creo tener todavía una implementación de un servidor de IRC (Chat) que maneja las conexiones por medio de threads, si la encuentro te muestro aquí como está implementada para que puedas adaptarla.

Saludos,

ps:

Un ejemplo de join : http://javahowto.blogspot.com/2007/0...n-threads.html