Concurrency - Livelock

> (Data|State) Management and Processing > (Concurrency | Parallel | Asynchronous) programming

1 - About

Livelock is a forms of thread contention.

A thread often acts in response to the action of another thread. If the other thread's action is also a response to the action of another thread, then livelock may result.

Livelocked threads are:

  • unable to make further progress (As with deadlock)
  • are not blocked — they are simply too busy responding to each other to resume work.

3 - Corridor Example

This is comparable to two people attempting to pass each other in a corridor:

  • Alphonse moves to his left to let Gaston pass, while Gaston moves to his right to let Alphonse pass.
  • Seeing that they are still blocking each other, Alphone moves to his right, while Gaston moves to his left.

They're still blocking each other, so…

4 - Documentation / Reference