纯头文件的 C++14 无锁环形缓冲队列,用于线程间以极低延迟传递消息。
crossbeam-rs/crossbeam
Rust 并发编程工具集,提供无锁队列、工作窃取双端队列、通道、原子类型等组件。
- Star
- 8,629
- Fork
- 589
- 未关闭 Issue
- 173
- 最近提交
- 23天前
这是什么?
Crossbeam 是一个 Rust 并发编程工具库,提供原子类型、无锁数据结构和同步原语等基础组件。其中包括 AtomicCell 等原子类型,有界和无界的多生产者多消费者(MPMC)队列,适用于任务调度的工作窃取双端队列,以及用于在并发结构中安全回收内存的基于 epoch 的垃圾回收器。
库中还包含用于消息传递的多生产者多消费者通道、线程 parking 原语、分片读写锁、用于同步计算起止点的 WaitGroup,以及可以借用栈上局部变量的 scoped 线程。主 crate 从各个子 crate 重新导出功能,因此只需依赖 crossbeam 一个包即可。
部分组件可以在 no_std 环境中使用,其中一些需要启用 alloc 特性。当前支持的最低 Rust 版本为 1.74。
核心功能
- 01提供无锁的有界和无界 MPMC 队列(ArrayQueue、SegQueue)
- 02提供用于构建任务调度器的工作窃取双端队列
- 03提供多生产者多消费者通道用于消息传递
- 04提供基于 epoch 的并发数据结构内存回收机制
- 05包含原子类型、线程 parking、分片读写锁、WaitGroup 和 scoped 线程
- 06部分组件可在 no_std 环境中使用
适用场景
- 使用工作窃取双端队列构建多线程任务调度器
- 借助 MPMC 通道在线程之间传递消息
- 在多个生产者和消费者之间无锁共享队列
- 创建可借用当前栈帧数据的线程
快速上手
- 1
在 Cargo.toml 中添加 crossbeam 依赖
- 2
用 Cargo 添加 crossbeam 依赖
crossbeam = "0.8"
使用前须知
- 最低支持的 Rust 版本为 1.74。
标签
常见问题
- crossbeam 是什么?
- Rust 并发编程工具集,提供无锁队列、工作窃取双端队列、通道、原子类型等组件。 Crossbeam 是一个 Rust 并发编程工具库,提供原子类型、无锁数据结构和同步原语等基础组件。其中包括 AtomicCell 等原子类型,有界和无界的多生产者多消费者(MPMC)队列,适用于任务调度的工作窃取双端队列,以及用于在并发结构中安全回收内存的基于 epoch 的垃圾回收器。
- crossbeam 可以免费使用吗?用的什么许可证?
- crossbeam 以 Apache-2.0 许可证开源。用于商业产品前,请先确认许可证条款。
- crossbeam 还在维护吗?
- 活跃维护中。crossbeam 最近一次提交是在 2026年10月1日。
- crossbeam 适合用来做什么?
- 使用工作窃取双端队列构建多线程任务调度器 借助 MPMC 通道在线程之间传递消息 在多个生产者和消费者之间无锁共享队列 创建可借用当前栈帧数据的线程
- crossbeam 怎么安装和运行?
- 在 Cargo.toml 中添加 crossbeam 依赖 用 Cargo 添加 crossbeam 依赖: crossbeam = "0.8"
- 在哪里获取 crossbeam?
- 源代码和安装说明在 GitHub 上:https://github.com/crossbeam-rs/crossbeam
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
1900+1 本周221C++MIT更新于 前天
Rust 数据并行库,只需修改少量代码即可把顺序迭代器改为并行执行。
1.3万618RustApache-2.0更新于 2个月前
Ruby 并发工具库,提供 Future/Promise、线程池、Agent、Atom、线程安全集合等并发原语。
5836423RubyOther更新于 8天前
开源的持续文件同步工具,让多台电脑之间的文件夹保持同步,无需中央服务器。
9万+35 本周5536GoMPL-2.0更新于 22小时前
基于 PyTorch 的 DiT 推理引擎,在 Diffusers 之上提供缓存、并行、量化和 CPU 卸载加速。
129393PythonApache-2.0更新于 昨天
vLLM 插件,集成 Snowflake 的推理优化(Shift Parallelism、投机解码、SwiftKV),用于加速并降低 LLM 与嵌入模型的服务成本。
491+1 本周69PythonApache-2.0更新于 上个月