Hola,
si lo he entendido bien, lo que quieres hacer es que los Threads prueben números por turnos.
Puedes pausar y reanudar Threads con los métodos:
El problema es que son "deprecated", ya que dan problemas al usar monitores, según creo. Aunque no creo que en este caso haya problema. La alternativa que sugiere Oracle es utilizar los métodos wait() y notify().
Pausas el Thread en el punto que quieras llamando a wait(), en algunos casos no está de más tener un flag booleano y utilizarlo de la forma:
Y reanudar el thread de la forma:
Prueba y nos cuentas, eso sí, tendrás que quitar el Hil[i ].join() y bucar la manera de que se vayan turnando haciendo solo un turno cada uno.
si lo he entendido bien, lo que quieres hacer es que los Threads prueben números por turnos.
Puedes pausar y reanudar Threads con los métodos:
Código [Seleccionar]
Hil[i].suspend();
Hil[i].resume();
El problema es que son "deprecated", ya que dan problemas al usar monitores, según creo. Aunque no creo que en este caso haya problema. La alternativa que sugiere Oracle es utilizar los métodos wait() y notify().
Pausas el Thread en el punto que quieras llamando a wait(), en algunos casos no está de más tener un flag booleano y utilizarlo de la forma:
Código [Seleccionar]
while(!flag) {
wait();
}
Y reanudar el thread de la forma:
Código [Seleccionar]
Hil[i].notify();
Prueba y nos cuentas, eso sí, tendrás que quitar el Hil[i ].join() y bucar la manera de que se vayan turnando haciendo solo un turno cada uno.