1 个不稳定版本
0.1.0 | 2023 年 7 月 11 日 |
---|
922 在 并发
265KB
5K SLoC
lock_freedom
lockfree 的分支
Rust 的无锁数据结构。
我们目前有
- 对象级线程局部存储
- 映射
- 集合
- 队列
- 栈
- SPSC、MPSC、SPMC 和 MPMC 通道
最新提交的文档
https://bzim.gitlab.io/lockfree/lockfree/
变更日志
贡献
基准测试
C11 焚化器实现
lib.rs
:
一个提供无锁数据结构和与指针相关的 "ABA 问题" 解决方案的软件包。
焚化器是在相关指针释放时尝试解决 "ABA 问题" 的 API。使用焚化器时,每个线程都有一个本地垃圾列表。释放共享对象的过程包括首先从共享上下文中删除指针,然后将指针添加到垃圾列表中。检查 "暂停计数器"。如果计数器为零,则删除整个列表,否则稍后删除列表。
这个计数器记录了请求焚化器 "暂停" 的次数。一个线程可以暂停焚化器来加载和使用共享指针,这就是为什么在删除之前从共享上下文中删除指针很重要的原因。lockfree 的早期版本使用全局焚化器。目前,使用的是对象级焚化器。
此软件包正在开发中,并计划添加一些结构。我们目前有
性能指南
为了实现无锁操作更好的时间性能,建议避免使用全局锁定,如堆分配。