Chapter 6. Designing lock-based concurrent data structures
- What it means to design data structures for concurrency
- Guidelines for doing so
- Example implementations of data structures designed for concurrency
In the last chapter we looked at the low-level details of atomic operations and the memory model. In this chapter we’ll take a break from the low-level details (although we’ll need them for chapter 7) and think about data structures.
The choice of data structure to use for a programming problem can be a key part of the overall solution, and parallel programming problems are no exception. If a data structure is to be accessed from multiple threads, either it must be completely immutable so the ...