百科.dev
全部条目在线工具AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
L

libcds

> 编程语言
开源

一个C++并发数据结构库

2.7K stars0 点赞2 次浏览
访问官网GitHub

工具介绍

一个C++并发数据结构库

!!! 停止战争 !!!

CDS C++ 库

并发数据结构(CDS)库是一组并发容器的集合,这些容器在共享访问时不需要外部(手动)同步,并且包含安全内存回收(SMR)算法,如危险指针和用户空间RCU,后者被用作基于纪元(epoch)的SMR。

CDS主要是一个仅头文件的模板库。只有SMR核心实现被分离到.so/.dll文件中。

该库包含以下容器的实现:

  • 支持可选消除机制的无锁栈
  • 若干无锁队列算法,包括经典的Michael & Scott算法及其变体、 平坦合并队列、分段队列
  • 无序集合/映射的多种实现——无锁和细粒度锁实现
  • 平坦合并技术
  • 无锁跳表
  • 无锁FeldmanHashMap/Set 多级数组哈希 支持线程安全的双向迭代器
  • Bronson等人的细粒度锁AVL树算法

通常,每个容器都有侵入式和非侵入式(类似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

如何构建

  • *nix:使用 CMake
  • Windows:使用 MS Visual C++ 2017 项目

如果目标架构支持,libcds 的某些部分可能依赖于 DCAS(双宽度比较并交换)原子原语。对于 x86,cmake 构建脚本会启用 -mcx16 编译器标志,以切换 DCA。

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

C++containershazard-pointerlock-freercu

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言