11/09/2015, 16:41
|
| | | 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 |