An attempt to explore and learn about concurrent (and lock-free in particular) programming, especially in C++.
Includes understanding basics of lock-free paradigm, exploring C++ concurrency support and its limitations, learning and tinkering with various implementations.
Currently includes :
- Notes on C++ std::atomic and memory model
- Material to understand atomic_shared_ptr via exploring:
- Underlying implementation of C++ std smart pointers
- Memory reclamation and its importance in concurrent data structures
- Improvements to std atomic_shared_ptr
- Exploring possibility of its use in concurrent data structures
- Lock-free implementations (particularly using atomic_shared_pointers):
- Treiber stack
- Michael-Scott queue
- A small description about some of existing concurrent hash table implementations
Note : A lot of sources (including gen AI) have been referred for learning and creating the material and code in this repository. The aim was entirely to facilitate learning and no commercial benefit or copyright violation is intended. It won't be possible to mention them all but some of them are cited in the respective articles and below.
- C++ Concurrency in Action book by Anthony Williams
- Daniel's CppCon 2023 Talk
- Fedor's CppCon 2017 Talk
- Timur's CppCon 2022 Talk
- Daniel's CppCon 2022 Talk
- Max Khizhinsky's blog