I am looking for an equivalent of the concurrent_queue
from Intel's tbb module in Rust. I have found some crates:
and even
I feel like they are all doing similar things, however in their docs it seems that they are using different algorithms for the implementation.
Though I don't know a lot about programming in C++, I am pretty sure that tbb's concurrent_queue
is a very fast MPMC queue implementation. You cannot be close to that performance if you only wrap a queue container in a Mutex
(which is tested by one of my friends).
Since the efficiency (both latency and throughput) is the main thing I care about, what should I use in Rust? The queue could be either bounded or unbounded and I probably need Acquire-Release ordering.