Skip to content

khizmax/libcds

NOTE: 1、非常齐全,包含多种data structure

2、比较成熟,给出了implementation的reference paper,参见 References

The Concurrent Data Structures (CDS) library is a collection of concurrent containers that don't require external (manual) synchronization for shared access, and safe memory reclamation (SMR) algorithms like Hazard Pointer and user-space RCU that is used as an epoch-based SMR.

The library contains the implementations of the following containers:

1、lock-free stack with optional elimination(消除) support

2、several algo for lock-free queue, including classic Michael & Scott algorithm and its derivatives, the flat combining queue, the segmented queue.

3、several implementation of unordered set/map - lock-free and fine-grained lock-based

4、flat-combining technique

5、lock-free skip-list

6、lock-free FeldmanHashMap/Set Multi-Level Array Hash with thread-safe bidirectional iterator support

7、Bronson's et al algorithm for fine-grained lock-based AVL tree

NOTE: 1、上述内容已经添加了tag,便于被检索到

Generally, each container has an intrusive and non-intrusive (STL-like) version belonging to cds::intrusive and cds::container namespace respectively.

NOTE:

1、"intrusive and non-intrusive " 是什么含义