 ##  [Livelock (Boucle Vivante)](/fr/node/58927) 

 Définition

Une situation de concurrence où les tâches changent continuellement d'état en réaction aux autres mais n'accomplissent pas de progrès global ; le système reste actif mais aucun travail utile n'est terminé.

 

 

 

 

 

 





## Principe

Principe

Le livelock survient lorsque les participants réagissent à la contention de façon coopérative ou antagoniste de manière à préserver la capacité de changer d'état des composants (vivacité locale) mais sans garantir le progrès au niveau système — souvent à cause de stratégies symétriques de retrait/retentative ou de règles de réactivité excessives.

 

 

 

 

 





## Démonstration

Démonstration

Deux processus détectent la contention et reculent tous deux pendant exactement le même intervalle, puis retentent simultanément, empêchant à chaque fois l'achèvement de l'opération malgré des changements d'état permanents.

 

 

 

 

## Mauvaise application

Mauvaise application

Qualifier d'« livelock » toute utilisation élevée du CPU ou tout 'thrashing', ou traiter le livelock comme un interblocage et appliquer des mécanismes de récupération qui supposent l'absence de changements d'état.

 

 

 

 

 





## Conséquence

Conséquence

Identifier correctement un livelock mène à des atténuations comme l'introduction d'un retrait aléatoire, la rupture de la symétrie, l'ajout d'équité ou l'application de garanties de progrès, ou la limitation des comportements réactifs ; une mauvaise identification conduit à des récupérations trop brutales qui peuvent détériorer la réactivité.

 

 

 

 

## Inversion

Inversion

L'inverse est un progrès coordonné : bien que les acteurs changent d'état, leurs interactions convergent vers l'achèvement des opérations plutôt que vers des réponses cycliques sans progrès.

 

 

 

 

 





## Limite

Limite

S'applique quand des composants du système continuent d'exécuter des changements d'état sans atteindre leurs objectifs. Exclut l'interblocage (absence de changement d'état) et la simple variabilité de performance ; peut se produire dans le routage réseau, les boucles de réessai ou les protocoles coopératifs.

 

 

 

 

 





## Tension sémantique

Tension sémantique

Tension avec le 'thrashing' et l'attente active : le thrashing désigne le gaspillage de ressources par des changements de contexte ou du paging excessifs, tandis que le livelock met l'accent sur la non‑complétion fonctionnelle malgré l'activité ; les deux peuvent coexister.

 

 

 

 

 





## Synthèse

Synthèse

Le livelock est une condition d'activité sans progression provoquée par des règles réactives ou la symétrie qui entraînent des changements d'état répétés sans achèvement ; le résoudre exige de briser la symétrie, d'introduire de l'aléa ou d'imposer des garanties de progrès.