Repolode
ruby-concurrency

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 数据每日更新。

相关项目