Disculpa las cagadas que pueda haber, pero hace mucho que no programo en Java.
La idea es bloquear acceso a conjunto (el otro hilo que se espere) y copiar las tareas a hacer. Después hacerlas.
No se si es muy correcto, ya que la operación especial parece que debería anular que se hagan más cosas.
Otra cosa que no entiendo de tu código es el reiterar. ¿Después de 100ms habrá cosas en la caché? ¿No se puede asumir que las cosas pendientes las finalizo la operación especial y finito? Esta ultima duda esta relacionada con el parrafo anterior.
Alternativa
(Puntos:3, Interesante)( http://127.0.0.1/ | Última bitácora: Jueves, 01 Julio de 2010, 03:18h )
Vector eltos=new Vector();
sinchronized(conjunto){
it = conjunto.iterador();
if (it.hayMas) {
elto = it.siguiente();
eltos.add(elto);
}
}
foreach(Object elto: eltos){
hacerCosas(elto);
}
Disculpa las cagadas que pueda haber, pero hace mucho que no programo en Java.
La idea es bloquear acceso a conjunto (el otro hilo que se espere) y copiar las tareas a hacer. Después hacerlas.
No se si es muy correcto, ya que la operación especial parece que debería anular que se hagan más cosas.
Otra cosa que no entiendo de tu código es el reiterar. ¿Después de 100ms habrá cosas en la caché? ¿No se puede asumir que las cosas pendientes las finalizo la operación especial y finito? Esta ultima duda esta relacionada con el parrafo anterior.
Una vez metido, recordad lo sucedido [laquadrature.net].