一个C++并发数据结构库
并发数据结构(CDS)库是一组并发容器的集合,这些容器在共享访问时不需要外部(手动)同步,并且包含安全内存回收(SMR)算法,如危险指针和用户空间RCU,后者被用作基于纪元(epoch)的SMR。
CDS主要是一个仅头文件的模板库。只有SMR核心实现被分离到.so/.dll文件中。
该库包含以下容器的实现:
通常,每个容器都有侵入式和非侵入式(类似STL)版本,分别属于 cds::intrusive 和 cds::container 命名空间。
该库的 2.x 版本基于 C++11 编写,可由 GCC 4.8+、clang 3.6+、Intel C++ 15+ 以及 MS VC++ 14(2015)及以上版本编译。
从 http://sourceforge.net/projects/libcds/files/ 下载最新版本。
在线 doxygen 生成的文档请参见此处:http://libcds.sourceforge.net/doc/cds-api/index.html
如何构建
如果目标架构支持,libcds 的某些部分可能依赖于 DCAS(双宽度比较并交换)原子原语。对于 x86,cmake 构建脚本会启用 -mcx16 编译器标志,以切换 DCA。
暂无开放 Issues,或尚未同步最近议题。