Next: Concurrencia en memoria distribuida
Up: Patrones de diseño para
Previous: Mitad-síncrono, mitad asíncrono
leader-followers
Se usa cuando una aplicación
- tiene que reaccionar a varios eventos a la vez
- y no es posible o conveniente inicializar cada vez un hilo para cada
evento
Ejemplos:
- procesamiento de transacciones en cuasi-tiempo real
- colas de taxis en aeropuertos
Comportamiento exigido:
- se quiere una distribución rápida de los eventos a hilos ya
esperando
- se quiere garantizar acceso con exclusión mutua a los eventos
Posible solución:
- se usa un conjunto de hilos organizados en una cola
- el hilo al frente de la cola (llamado líder) procesa el siguiente
evento
- pero transforma primero el siguiente hilo en la cola en nuevo líder
- cuando el hilo haya terminado su trabajo se añade de nuevo a la
cola
Detalles de la implementación:
- se los eventos llegan mas rápido que se pueden consumir con la
cola de hilos, hay que tomar medidas apropriadas
(p.ej., manejar los eventos en una cola, descartar eventos etc.)
- para aumentar la eficiencia de la implementación se puede implementar
la cola de hilos esperando como un pila
- el acceso a la cola de seguidores tiene que ser eficiente y robusto
Next: Concurrencia en memoria distribuida
Up: Patrones de diseño para
Previous: Mitad-síncrono, mitad asíncrono
© 2003, Dr. Arno Formella, Universidad de Vigo, Departamento de Informática