Definition
Ein Nebenläufigkeitszustand, bei dem Aufgaben fortlaufend ihren Zustand als Reaktion auf andere ändern, aber keinen Gesamtfortschritt erzielen; das System bleibt aktiv, aber keine nützliche Arbeit wird abgeschlossen.
Prinzip
Prinzip
Livelock entsteht, wenn Teilnehmer auf Kontention so reagieren, dass die lokale Lebendigkeit (Zustandsänderung) erhalten bleibt, jedoch kein systemweiter Fortschritt garantiert ist — oft aufgrund symmetrischer Retry/Backoff‑Strategien oder übermäßiger Reaktionsregeln.
Demonstration
Demonstration
Zwei Prozesse erkennen Kontention und treten beide für exakt dasselbe Intervall zurück, dann versuchen sie gleichzeitig erneut; dies verhindert wiederholt, dass einer die Operation abschließt, obwohl Zustandsänderungen stattfinden.
Fehlanwendung
Fehlanwendung
Jede hohe CPU‑Auslastung oder Thrashing als Livelock zu bezeichnen, oder Livelock mit Deadlock gleichzusetzen und Deadlock‑Recovery‑Mechanismen anzuwenden, die keine Zustandsänderungen erwarten.
Konsequenz
Konsequenz
Die korrekte Identifizierung von Livelock führt zu Abhilfen wie randomisiertem Backoff, Symmetriebruch, Einführung von Fairness oder Durchsetzung von Fortschrittsgarantien bzw. Begrenzung reaktiven Verhaltens; Fehldeutung kann zu zu harten Recovery‑Maßnahmen führen, die die Reaktionsfähigkeit verschlechtern.
Umkehrung
Umkehrung
Das Gegenteil ist koordinierter Fortschritt: Obwohl Akteure Zustände ändern, konvergieren ihre Interaktionen zu abgeschlossenen Operationen statt zu zyklischen, nicht fortschreitenden Reaktionen.
Abgrenzung
Abgrenzung
Gilt, wenn Systemkomponenten weiterhin Zustandsänderungen ausführen, ohne Ziele zu erreichen. Ausgeschlossen sind Deadlock (keine Zustandsänderung) und reine Performance‑Schwankungen; Livelock kann in Netzwerk‑Routing, Retry‑Schleifen oder kooperativen Protokollen auftreten.
Semantische Spannung
Semantische Spannung
Spannung zu Thrashing und Busy‑Waiting: Thrashing beschreibt Ressourcenverschwendung durch übermäßige Kontextwechsel oder Paging, während Livelock funktionales Nicht‑Abschließen trotz Aktivität betont; beides kann zusammen vorkommen.
Synthese
Synthese
Livelock ist ein aktiver Nicht‑Fortschrittszustand, der durch reaktive Regeln oder Symmetrie erzeugt wird und wiederholte Zustandsänderungen ohne Vorwärtsabschluss verursacht; gelöst wird er durch Symmetriebruch, Zufallseinführung oder Fortschrittsgarantien.