Ver Mensaje Individual
  #4 (permalink)  
Antiguo 03/02/2010, 04:34
Avatar de Xerelo
Xerelo
 
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: Threads: ¿Cómo usar wait() y notify()?

Muchas gracias por toda la información que me has dado, funciona perfectamente.

-Normalmente no uso blind catches, pero a fuerza de ir probando cosas alguno se me quedó por el camino
-Pensaba que el synchronized sólo era necesario cuando se intentaba acceder a un recurso compartido, y como en este caso no había tal recurso supuse que no haría falta.
-Por la posibilidad de que al morir el hilo principal no se ejecutaran correctamente los otros, hice alguna prueba en la que aparentemente sí funcionaban, así que lo he probado sin el sleep que comentas y me ha funcionado. Creo que es interesante la posibilidad de que hilos sigan en ejecución aunque el principal haya muerto, pero si puede ser un problema supongo que entre los join() y la creación de un bucle en el principal que compruebe la existencia de hilos abiertos, el problema estaría resuelto.
-Sólo eran pruebas para entender funcionamiento, me imaginaba que en realidad habrá formas más elegantes y efectivas de hacerlo.
-Lo que me ha sorprendido es que la llamada al notify() sea a través del método en espera y no desde el que se está ejecutando, supongo que será porque el principal no está definido como synchronized.