Original language | American English |
---|---|
Title of host publication | Encyclopedia of Parallel Computing |
Editors | David Padua |
Publisher | Springer New York |
Pages | 1321-1329 |
Number of pages | 9 |
ISBN (Electronic) | 9780387097664 |
ISBN (Print) | 9780387097657 |
DOIs | |
State | Published - Sep 2011 |
Abstract
Non-blocking algorithms are shared-memory multiprocessor algorithms that can avoid race conditions and guarantee correctness without using mutual exclusion locks. They are in general more resilient to asynchronous conditions than lock-based algorithms since they guarantee progress even if some of the threads participating in the algorithm are delayed for a long duration or even fail-stop. (The definition of the terms “non-blocking” and “lock-free” has changed in recent years, creating some terminology confusion. In the past, an algorithm was called “non-blocking” if it guaranteed global progress and “lock-free” if it did not rely on mutual exclusion locks. In recent years, most authors call an algorithm “lock-free” if it guarantees global progress and “non-blocking” if the delay of some threads cannot delay other threads indefinitely. This entry adopts the latter terminology since it is more widely used nowadays. Precise definitions are provided later in the sequel.)