11 个版本 (4 个破坏性更新)
使用旧的 Rust 2015
0.5.1 | 2018 年 11 月 18 日 |
---|---|
0.5.0 | 2018 年 11 月 17 日 |
0.4.1 | 2018 年 11 月 11 日 |
0.3.2 | 2018 年 11 月 4 日 |
0.1.1 | 2018 年 6 月 15 日 |
在 并发 中排名第 460
每月下载量 16,252
被 116 个 软件包使用(直接使用 16 个)
260KB
5.5K SLoC
lockfree
Rust 的无锁数据结构。
我们目前有
- 对象级别的线程局部存储
- 映射
- 集合
- 队列
- 栈
- SPSC、MPSC、SPMC 和 MPMC 通道
最新提交的文档
https://bzim.gitlab.io/lockfree/lockfree/
变更日志
查看 CHANGELOG.md
贡献
基准测试
C11 焚烧器实现
lib.rs
:
一个提供无锁数据结构和与指针相关的 "ABA 问题" 解决方案的软件包。
焚烧器是尝试解决与指针释放相关的 "ABA 问题" 的 API。使用焚烧器时,每个线程都有一个本地垃圾列表。释放共享对象包括首先从共享上下文中删除指针,然后将指针添加到垃圾列表中。检查 "暂停计数器"。如果计数器为零,则删除整个列表,否则稍后删除列表。
此计数器记录焚烧器被要求 "暂停" 的次数。线程可能暂停焚烧器以加载和使用共享指针,这就是为什么在删除之前从共享上下文中删除指针很重要的原因。lockfree 的早期版本使用全局焚烧器。目前,使用的是每个对象的焚烧器。
该软件包正在开发中,并计划实现一些结构。我们有
[x]
对象级别的线程局部存储[x]
通道(SPSC、MPSC、SPMC、MPMC)[x]
映射[x]
集合[x]
堆栈[x]
队列[ ]
双端队列
性能指南
为了实现无锁的高性能,建议避免全局锁定操作,如堆分配。