gpt4 book ai didi

multithreading - 与英特尔的 tbb::concurrent_queue 等效的 Rust 是什么?

转载 作者:行者123 更新时间:2023-11-29 08:07:36 24 4
gpt4 key购买 nike

我正在寻找 concurrent_queue 的等价物来自英特尔的 tbb Rust 中的模块。我找到了一些 crate :

  1. multiqueue

  2. two-lock-queue

  3. crossbeam-deque

甚至

  1. futures-pool

  2. thread-pool

我觉得他们都在做类似的事情,但是在他们的文档中,他们似乎使用不同的算法来实现。

虽然我不太了解 C++ 编程,但我很确定 tbb 的 concurrent_queue 是一个非常快速的 MPMC 队列实现。如果仅将队列容器包装在 Mutex 中(由我的一位 friend 测试过),您将无法接近该性能。

既然效率(延迟和吞吐量)是我关心的主要事情,那么我应该在 Rust 中使用什么?队列可以是有界的也可以是无界的,我可能需要获取-释放顺序。

最佳答案

我认为 crossbeam::sync::MsQueuecrossbeam::sync::SegQueue来自横梁 crate 的功能与 concurrent_queue 相同你链接了。

它们是无锁队列,可以以非阻塞方式与 push 一起使用和 try_pop .

This benchmark表示 SegQueueMsQueue 快,但这可能仍取决于您的用例。

关于multithreading - 与英特尔的 tbb::concurrent_queue 等效的 Rust 是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49347324/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com