Saltar al contenido
uencoder

Livelock

Un livelock ocurre cuando los hilos cambian constantemente de estado en respuesta unos a otros sin lograr avance alguno; no están bloqueados, pero no pueden completar la tarea.

Propósito

Entender la diferencia entre livelock y deadlock y sus defensas; un defecto de progreso (liveness) en programas concurrentes.

Mecanismo

Los hilos se ceden el turno continuamente (p. ej., ambos liberan el bloqueo para que lo tome el otro), de modo que ningún hilo adquiere el recurso. A diferencia del deadlock, los hilos están activos pero no avanzan. Defensas: retroceso aleatorio, prioridades y límites de reintento.

Casos de uso

  • Análisis de progreso en concurrencia
  • Detección de livelock
  • Diseño concurrente

Herramientas relacionadas

References