Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/09/2008, 02:30
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 17 años, 1 mes
Puntos: 260
Mensaje Respuesta: Limitar Threads

Hola,

Sincronización.
Lee la documentación.


De esta forma lo haría yo ...
Mi clase principal se encarga de manejar los threads y los threads le avisan.

Código:
public class Principal() {
  private int cuenta;
  public synchronized void incCuenta() {
    cuenta++; // Cuando 1 thread inicializa incrementa la cuenta.
  }
  public synchronized void decCuenta() {
    cuenta--; // Cuando 1 thread finaliza decrementa la cuenta.
  }
  public Principal() {
    new MiThread(this).start();
    new MiThread(this).start();
    System.out.println(cuenta);
  }
}

public class MiThread extends Thread {
  private Principal p;
  public MiThread(Prinicipal p) {
    this.p = p;
    this.p.incCuenta(); // En el constructor agrega 1 a la cuenta
  }
  public void run() {
    // hacer todo el proceso del thread.
    Sleep(1000 * 60);
    this.p.decCuenta(); // Esta función reduce la cuenta
  }
}
Y para eliminar el while (cuenta < 10) ... usaría wait y notify.

Saludos.

ps:
* Es un concepto parecido a los listeners
* El código arriba puede tener errores.