通道
Rust 通道(Channel)包含两个部分:Sender<T> 和 Receiver<T>。这两个部分 通过通道进行连接,但你只能看到端点。
1. use std::sync::mpsc;
3. fn main() {
4. let (tx, rx) = mpsc::channel();
6. tx.send(10).unwrap();
7. tx.send(20).unwrap();
9. println!("Received: {:?}", rx.recv());
10. println!("Received: {:?}", rx.recv());
12. let tx2 = tx.clone();
13. tx2.send(30).unwrap();
14. println!("Received: {:?}", rx.recv());
15. }
mpsc代表多个生产方,单个使用方。Sender和SyncSender会实现Clone(因此, 你可以设置多个生产方),但Receiver不会实现。send()和recv()会返回Result。如果它们返回Err,则表示对应的Sender或Receiver已被丢弃,且通道已关闭。
