Livelocks
Livelock is a type of concurrency problem in which two or more processes continuously change their state in response to each other, but no process makes progress toward its goal. In a livelock, the processes remain active and runnable, yet their actions keep canceling each other out, preventing forward progress. This differs from deadlock, where processes are blocked and unable to proceed; in a livelock the processes are not blocked, only ineffective.
Livelocks commonly arise when local decisions are made to avoid contention. For example, two threads each hold
Consequences of livelock include repeated work without completion, wasted CPU cycles, and reduced system throughput. It
Prevention and mitigation strategies include using strict resource acquisition ordering to prevent circular wait, implementing timeouts