C++ Advanced · Lesson 03 of 8
Lock-free data structures
Memory order, SPSC queues, hazard-free designs.
Estimated time · 7h
Guided lesson
Work through these steps
- 1.
Read the lock-free data structures example and identify what each line owns or changes.
- 2.
Create a small source file, compile with warnings enabled, and run it from the terminal.
- 3.
Change one input, predict the result before running, then compare the output.
- 4.
Record one compiler or runtime error and explain the correction in your own words.
Example
Try it yourself
value.store(next, std::memory_order_release);
auto current = value.load(std::memory_order_acquire);Practical exercise
Apply the lesson
Build a small robotics-flavoured program that demonstrates lock-free data structures. Keep the first version simple, compile with -Wall -Wextra, and test one normal and one edge case.
Before you continue
- The program builds without warnings
- You can explain the key rule without reading the example
- The normal and edge cases both have recorded results