Lock-free data structures are based on two things – atomic operations and methods of memory access regulation. In this article I will refer to atomicity and atomic primitives.
To begin with, I would like to thank you for a warm welcome of
Lock-free Data Structures. 1 — Introduction. I can see that lock-free topic is interesting and it makes me glad. I planned to build a series according to academic concept, flowing from basics to algorithms, at the same time illustrating the text with the code from libcds. But part of the readers wants me to show them, without any delays and rambling on, how to use the library. I agree that there is some reason in it. After all, it’s not interesting for me either to know what is inside the
boost, — and how to apply it! So I will divide my epic series into three parts:
Basics,
Inside and
From Outside. Each article of the epic will refer to one of the parts. In the
Basics I will tell about the low-level things, even about modern CPUs build. This part is for the whyers like me. In the
Inside part I will cover interesting algorithms and methods of the lock-free world – it’s more likely a theory about how to implement a lock-free data structure. Libcds will be an endless source of the C++ code.
From Outside will contain articles on libcds implementation practice, — programming solutions, advice and FAQ.
From Outside is fed by the readers’ questions, comment, offers.
Read more →