List of Figures

Chapter 1. Hello, world of concurrency in C++!

Figure 1.1. Two approaches to concurrency: parallel execution on a dual-core machine versus task switching on a single-core machine

Figure 1.2. Task switching of four tasks on two cores

Figure 1.3. Communication between a pair of processes running concurrently

Figure 1.4. Communication between a pair of threads running concurrently in a single process

Chapter 3. Sharing data between threads

Figure 3.1. Deleting a node from a doubly linked list

Chapter 4. Synchronizing concurrent operations

Figure 4.1. Using multiple std::shared_future objects to avoid data races

Figure 4.2. FP-style recursive sorting

Figure 4.3. A simple state machine model for an ATM

Chapter 5. The C++ memory model and operations on atomic types

Figure 5.1. The division of a struct into objects and memory locations

Figure 5.2. Enforcing an ordering between nonatomic operations using atomic operations

Figure 5.3. Sequential consistency and happens-before

Figure 5.4. Relaxed atomics and happens-before

Figure 5.5. The notebook for the man in the cubicle

Figure 5.6. Acquire-release and happens-before

Figure 5.7. The release sequence for the queue operations from listing 5.11

Chapter 6. Designing lock-based concurrent data structures

Figure 6.1. A queue represented using a single-linked list

Chapter 7. Designing lock-free concurrent data structures

Figure 7.1. Three threads call pop() concurrently, showing why you must check threads_in_pop after claiming the nodes to be deleted in try_reclaim().

Chapter 8. Designing concurrent code

Figure 8.1. Distributing consecutive chunks of data between threads

Figure 8.2. Recursively dividing data

Figure 8.3. Matrix multiplication

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.145.17.140