Rust 中的低延迟线程间通信库受 LMAX Disruptor 的启发。
此库是一个低延迟、以 Rust 编写的多线程通信库。 它受到杰出的 来自 LMAX 的 Disruptor 库。 当您希望将 CPU 资源用于降低延迟和提高吞吐量时,可以使用它,例如与 Crossbeam 或 std::sync::mpsc 通道相比。
将以下内容添加到您的 Cargo.toml 文件中:
disruptor = "4.4.0" 要了解如何使用该库的详细信息,请查看 docs.rs/disruptor 的文档。
处理事件有两种方式:
EventPoller API,可以轮询事件(并管理自己的线程)。
两者性能相似,因此请选择最适合您的使用场景的产品。 (另请参阅基准测试。)这里有一个最小的示例,演示了单个和批量发布。请注意,尽可能使用批量发布,以实现最佳延迟和吞吐量(请参阅下面的基准测试)。
…该库还支持在核心上锁定线程,以避免上下文切换引起的延迟。 一个更高级的用例可以展示这一点,并且包含多个生产者和多个相互依赖的消费者,如下所示:
…如果需要在处理线程中存储某些状态,而这些状态既不是 Send 也不是 Sync,例如 Rc,那么您可以创建一个闭包来初始化该状态,并在构建 Disruptor 时将其传递给处理闭包。Disruptor 将在每个事件中传递一个可变引用给您的状态。例如:
…存储的替代方案
暂无开放 Issues,或尚未同步最近议题。