A synchronization technique is lock-free if it ensures only that some thread always makes progress.
A synchronization technique is obstruction-free if it guarantees progress for any thread that (eventually) executes in isolation.
A synchronization technique is wait-free if it ensures that every thread will continue to make progress.
- ↑ 1.0 1.1 1.2 M. Herlihy, V. Luchangco, and M. Moir. Obstruction-free synchronization: double-ended queues as an example. International Conference on Distributed Computing Systems, pages 522-529. IEEE, 2003.