 ##  [Livelock (Bloqueo Activo)](/es/node/58927) 

 Definición

Una condición de concurrencia en la que las tareas cambian continuamente de estado en respuesta a otras pero no logran progreso global; el sistema permanece activo pero no se completa trabajo útil.

 

 

 

 

 

 





## Principio

Principio

El livelock se produce cuando los participantes reaccionan a la contención de manera que mantienen la vivacidad de los componentes (pueden cambiar de estado) pero no garantizan el progreso del sistema, frecuentemente por reintentos/respuestas simétricas o reglas de reacción excesiva.

 

 

 

 

 





## Demostración

Demostración

Dos procesos detectan contención y ambos retroceden exactamente el mismo intervalo antes de reintentar simultáneamente, impidiendo repetidamente que cualquiera complete su operación a pesar de que hay cambios de estado continuos.

 

 

 

 

## Aplicación incorrecta

Aplicación incorrecta

Llamar livelock a cualquier uso elevado de CPU o thrashing, o tratar livelock como deadlock y aplicar mecanismos de recuperación que suponen ausencia de cambios de estado.

 

 

 

 

 





## Consecuencia

Consecuencia

Identificar correctamente un livelock conduce a mitigaciones como introducir retrocesos aleatorizados, romper la simetría, añadir equidad o forzar garantías de progreso, o limitar el comportamiento reactivo; una mala identificación puede empeorar la capacidad de respuesta.

 

 

 

 

## Inversión

Inversión

El reverso es el progreso coordinado: aunque los actores cambien de estado, sus interacciones convergen hacia operaciones completadas en lugar de respuestas cíclicas sin progreso.

 

 

 

 

 





## Límite

Límite

Se aplica cuando componentes del sistema siguen cambiando de estado sin completar objetivos. Excluye deadlock (sin cambio de estado) y simples fluctuaciones de rendimiento; puede ocurrir en enrutamiento de red, bucles de reintento o protocolos cooperativos.

 

 

 

 

 





## Tensión semántica

Tensión semántica

Tensión con el thrashing y la espera activa: el thrashing denota desperdicio de recursos por cambios de contexto o paginación excesiva, mientras que el livelock enfatiza la no‑finalización funcional a pesar de la actividad; ambos pueden coexistir.

 

 

 

 

 





## Síntesis

Síntesis

El livelock es una condición activa de no‑progreso generada por reglas reactivas o simetría que provocan cambios de estado repetidos sin finalizar; resolverlo exige romper la simetría, añadir aleatoriedad o imponer garantías de progreso.