Chapter 7. Designing lock-free concurrent data structures

This chapter covers

  • Implementations of data structures designed for concurrency without using locks
  • Techniques for managing memory in lock-free data structures
  • Simple guidelines to aid in the writing of lock-free data structures

In the last chapter we looked at general aspects of designing data structures for concurrency, with guidelines for thinking about the design to ensure they’re safe. We then examined several common data structures and looked at example implementations that used mutexes and locks to protect the shared data. The first couple of examples used one mutex to protect the entire data structure, but later ones used more than one to protect various smaller parts of the data structure and allow greater levels of concurrency in accesses to the data structure.

7.1. Definitions and consequences

7.2. Examples of lock-free data structures

7.3. Guidelines for writing lock-free data structures