Ver Mensaje Individual
  #3 (permalink)  
Antiguo 11/09/2015, 16:41
Avatar de Instru
Instru
 
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años
Puntos: 52
Respuesta: Deadlock implementando un protocolo en java

Hola. Gracias por tu respuesta.

De hecho mi implementación maneja 2 hilas mas el hilo principal. Tal como dices, hay un hilo para el emisor y otro para el receptor. El hilo principal se encarga de obtener la entrada para enviarla.

Por otro lado, las estructuras concurrentes de java han sido de gran ayuda ya que estas implementan los bloqueos de manera eficiente.

Al final, tuve que cambiar un poco la idea. Lo que hice en esencia fue no bloquear el emisor. De esta manera, siempre se puede enviar lo que hay en la cola. Para revisar las respuestas utilice una estructura de datos que consistia en una combinación de tabla hash y una cola. Cada mensaje enviado que requiera respuesta se encola( para mantener el orden ). Y cuando llega la respuesta, se busca el mensaje encolado usando el hash y se quita de la cola.
Aparte, cada que vence un timer, se vuelve a encolar la cabeza de la cola-hash para intentar enviar de nuevo.

Suena complejo, pero hasta ahorita es lo que ha funcionado de maravilla.

Saludos