Foros del Web » Programación para mayores de 30 ;) » Java »

Sincronizacion

Estas en el tema de Sincronizacion en el foro de Java en Foros del Web. Hola. Tengo un Web Service al que varios clientes pueden solicitar simultaneamente un dato. Este dato (Fichaje) es proporcionado por un hilo de ejecución que ...
  #1 (permalink)  
Antiguo 22/07/2008, 23:27
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Sincronizacion

Hola.

Tengo un Web Service al que varios clientes pueden solicitar simultaneamente un dato. Este dato (Fichaje) es proporcionado por un hilo de ejecución que está ejecutándose en el WS y se va actualizando cada cierto tiempo (el tiempo de actualización es indefinido, pueden ser 5 segundos o incluso media hora).

El problema que me encuentro es como sincronizar los clientes para que esperen a que el dato esté disponible ya que en cuanto el dato estuviese listo, todos los clientes deberían cogerlo y finalizar su ejecución.
He pensado en hacer un "wait()" en los clientes hasta que el hilo que proporciona el dato haga un "notifyall()" pero esto no me resuelve el problema ya que según tengo entendido solo despertaría a un hilo y yo quiero que todos los que esten esperando cojan el dato.

¿Me podeis echar una mano?
Gracias
  #2 (permalink)  
Antiguo 23/07/2008, 00:04
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Sincronizacion

Me respondo a mi mismo.
Creo que el algoritmo de los Lectores/Escritores me podría servir.
¿Conoceis alguna implementación en Java por ahí?

Saludos.
  #3 (permalink)  
Antiguo 23/07/2008, 00:42
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Sincronizacion

Lo que podrias hacer en este caso es que despues de que cada hilo lea el dato, de forma sincrozada, ejecute tambien el notifyAll(). Así se van despertando el uno al otro hasta que queda el ultimo que no despierte a nadie y el notifyAll() no hace nada.

S!

PD: Eso teniendo en cuenta que si el dato no está, no han de esperar.
PPD: El de lectores escritores no se si te servirá, puesto que resuelve el problema de varios escritores escribiendo distintos datos y los lectores leyendo uno de esos datos cada vez, lo cual no es exactamente tu caso.
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
  #4 (permalink)  
Antiguo 24/07/2008, 05:50
 
Fecha de Ingreso: abril-2008
Mensajes: 23
Antigüedad: 16 años
Puntos: 0
Respuesta: Sincronizacion

Gracias GreenEyed.

Tenías razón en cuanto a lo de los Lectores/Escritores, se ajusta más a lo que quiero tu idea de que el cliente despierte a clientes que esperan.

Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:55.