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.
mpsc
stands for Multi-Producer, Single-Consumer.Sender
andSyncSender
implementClone
(so you can make multiple producers) butReceiver
does not.send()
andrecv()
returnResult
. If they returnErr
, it means the counterpartSender
orReceiver
is dropped and the channel is closed.