Rust 并发编程工具集,提供无锁队列、工作窃取双端队列、通道、原子类型等组件。
ruby-concurrency/concurrent-ruby
Ruby 并发工具库,提供 Future/Promise、线程池、Agent、Atom、线程安全集合等并发原语。
- Star
- 5,837
- Fork
- 423
- 未关闭 Issue
- 53
- 最近提交
- 8天前
这是什么?
Concurrent Ruby 是一个为 Ruby 应用提供丰富并发抽象的 gem。它包含 Promises(统一的 future 与 promise 框架)、ScheduledTask、TimerTask 等异步工具,以及受 Java 启发的线程池和其他执行器。
库中还提供线程安全的值对象与集合,包括 Array、Hash、Set 的线程安全子类,高并发场景下的 Map,不可变与可变 Struct,以及 AtomicReference、AtomicFixnum 等原子类型。在共享状态方面,它提供 Clojure 风格的 Agent 和 Atom,以及用于软件事务内存的 TVar,并附带 CountDownLatch、Semaphore、ReadWriteLock 等同步类。
该 gem 不依赖其他外部 gem,可运行于 MRI、JRuby 和 TruffleRuby。MRI 下可选安装 concurrent-ruby-ext 以使用 C 扩展;Actor、Channel 等实验性功能位于配套的 concurrent-ruby-edge 中。
核心功能
- 01Promises 框架,整合 future、promise 与延迟求值。
- 02受 Java 并发包启发的线程池与其他执行器。
- 03线程安全的 Array、Hash、Set 和 Map 集合。
- 04原子引用、计数器与布尔值,支持无锁更新。
- 05Agent 与 Atom 管理共享状态,TVar 提供事务内存。
- 06CountDownLatch、Semaphore、ReadWriteLock 等同步原语。
适用场景
- 在 Ruby 服务中运行后台任务或并行 I/O,无需引入额外依赖。
- 使用闩锁、屏障或信号量协调多个线程。
- 在 Ruby 进程内调度周期性或延迟执行的任务。
- 通过 Atom 或线程安全集合在线程间安全共享可变状态。
使用前须知
- 元数据中未能识别出许可证,使用前请先查看仓库中的许可证文件。
- concurrent-ruby-edge 伴随库中的功能可能频繁变化,并且可能破坏向后兼容性。
标签
常见问题
- concurrent-ruby 是什么?
- Ruby 并发工具库,提供 Future/Promise、线程池、Agent、Atom、线程安全集合等并发原语。 Concurrent Ruby 是一个为 Ruby 应用提供丰富并发抽象的 gem。它包含 Promises(统一的 future 与 promise 框架)、ScheduledTask、TimerTask 等异步工具,以及受 Java 启发的线程池和其他执行器。
- concurrent-ruby 可以免费使用吗?用的什么许可证?
- concurrent-ruby 以 Other 许可证开源。用于商业产品前,请先确认许可证条款。
- concurrent-ruby 还在维护吗?
- 活跃维护中。concurrent-ruby 最近一次提交是在 2026年10月16日。
- concurrent-ruby 适合用来做什么?
- 在 Ruby 服务中运行后台任务或并行 I/O,无需引入额外依赖。 使用闩锁、屏障或信号量协调多个线程。 在 Ruby 进程内调度周期性或延迟执行的任务。 通过 Atom 或线程安全集合在线程间安全共享可变状态。
- 在哪里获取 concurrent-ruby?
- 源代码和安装说明在 GitHub 上:https://github.com/ruby-concurrency/concurrent-ruby
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
Node.js 工作线程池,把计算密集型任务转移到子线程执行,避免阻塞主事件循环。
面向 Rust 的 Actor 框架,基于 Tokio 运行时,支持类型化消息和 Actor 监督。
一套开源的 Rust 练习与示例集合,按章节组织,代码可在线编辑运行并附有参考答案。
一个仅含头文件的 C++ 库,用任务图编写任务并行程序,支持多线程与 CUDA GPU。
开源的持续文件同步工具,让多台电脑之间的文件夹保持同步,无需中央服务器。