The Multi-Thread Data Structures (MTDS) library is header-only template library, a collection of the concurrent data structures. It contains the following implementations:
- Single-lock queue
- Lwo-lock queue
- Lock-free queue (Michael & Scott algorithm)
- Lock-free stack (Treiber algorithm)
g++
/clang
/msvc
compilerCMake
64
-bit architecture
./compile.sh
- Lock-free queue & two-lock queue:
- Michael, M.M.; Scott, M.L. (1996). Simple, Fast, and Practical Non-Blocking and Blocking Concurrent Queue Algorithms
- Lock-free stack:
- Treiber, R.K. (1986). Systems programming: Coping with parallelism