Senders و Receivers
کانالهای Rust دارای دو بخش هستند: Sender<T> و Receiver<T>. این دو بخش از طریق channel به هم متصل میشوند، اما شما فقط نقاط پایانی (end-points) را میبینید.
use std::sync::mpsc;
fn main() {
let (tx, rx) = mpsc::channel();
tx.send(10).unwrap();
tx.send(20).unwrap();
println!("دریافت شد: {:?}", rx.recv());
println!("دریافت شد: {:?}", rx.recv());
let tx2 = tx.clone();
tx2.send(30).unwrap();
println!("دریافت شد: {:?}", rx.recv());
}
This slide should take about 9 minutes.
mpscstands for Multi-Producer, Single-Consumer.SenderandSyncSenderimplementClone(so you can make multiple producers) butReceiverdoes not.send()andrecv()returnResult. If they returnErr, it means the counterpartSenderorReceiveris dropped and the channel is closed.