Definition
A concurrency condition where tasks continuously change state in response to others but fail to make overall progress; the system remains active yet no useful work completes.
Principle
Principle
Livelock results when participants react to contention cooperatively or antagonistically in ways that preserve liveness of components (they can still change state) but do not guarantee system‑level progress — often due to symmetric retry/backoff or excessive responsiveness rules.
Demonstration
Demonstration
Two processes repeatedly detect contention and both back off for exactly the same interval, then retry simultaneously, repeatedly preventing either from completing their operation despite ongoing state changes.
Misapplication
Misapplication
Labeling any high CPU usage or thrashing as livelock, or treating livelock identically to deadlock and applying deadlock recovery mechanisms that assume no state change.
Consequence
Consequence
Correctly identifying livelock leads to mitigations like introducing randomized backoff, breaking symmetry, adding fairness or progress enforcement, or limiting reactive behavior; misidentification leads to unnecessary heavy‑handed recovery that may worsen responsiveness.
Reversal
Reversal
The reverse is coordinated progress: although actors change state, their interactions converge toward completed operations rather than cyclic, non‑progressing responses.
Boundary
Boundary
Applies when system components continue to execute state changes without completing goals. Excludes deadlock (no state change) and pure performance jitter; can appear in network routing, retry loops, or cooperative protocols.
Semantic Tension
Semantic Tension
Tension with thrashing and busy‑waiting: thrashing denotes resource wastage due to excessive context switches or paging, while livelock emphasizes functional non‑completion despite activity; both can coexist.
Synthesis
Synthesis
Livelock is an active non‑progress condition produced by reactive rules or symmetry that causes repeated state changes without forward completion; resolving it requires breaking symmetry, adding randomness, or enforcing progress guarantees.