<分区>
标准库只有多个生产者单一消费者 (MPSC) channel 。
也就是说,如果有10个消费者,如何让每个消费者都收到单个生产者发送的消息?
标签 rust
<分区>
标准库只有多个生产者单一消费者 (MPSC) channel 。
也就是说,如果有10个消费者,如何让每个消费者都收到单个生产者发送的消息?
最佳答案
查看 bus装箱@CodesInChaos mentioned .一个工作示例:
extern crate bus;
use std::thread;
fn main() {
let mut bus = bus::Bus::new(10);
let mut receiver1 = bus.add_rx();
let mut receiver2 = bus.add_rx();
let mut receiver3 = bus.add_rx();
let a = thread::spawn(move || {
println!("receiver1 - {}", receiver1.recv().expect("1"));
});
let b = thread::spawn(move || {
println!("receiver2 - {}", receiver2.recv().expect("2"));
});
let c = thread::spawn(move || {
println!("receiver3 - {}", receiver3.recv().expect("3"));
});
bus.broadcast(42);
a.join().expect("a");
b.join().expect("b");
c.join().expect("c");
}
关于rust - 如何在 Rust 中实现单一生产者、多个消费者 (SPMC) channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50893327/