Transmissores e Receptores
Os channels (canais) em Rust têm duas partes: um Sender<T>
e um Receiver<T>
. As duas partes estão conectadas através do channel, mas você só vê os end-points.
use std::sync::mpsc; fn main() { let (tx, rx) = mpsc::channel(); tx.send(10).unwrap(); tx.send(20).unwrap(); println!("Recebido: {:?}", rx.recv()); println!("Recebido: {:?}", rx.recv()); let tx2 = tx.clone(); tx2.send(30).unwrap(); println!("Recebido: {:?}", rx.recv()); }
This slide should take about 9 minutes.
mpsc
significa Multi-Produtor, Único-Consumidor.Sender
eSyncSender
implementamClone
(então você pode criar vários produtores), masReceiver
(consumidores) não.send()
erecv()
retornamResult
. Se retornaremErr
, significa que a contraparteSender
ouReceiver
é descartada e o canal é fechado.