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.
mpscsignifica Multi-Produtor, Único-Consumidor.SendereSyncSenderimplementamClone(então você pode criar vários produtores), masReceiver(consumidores) não.send()erecv()retornamResult. Se retornaremErr, significa que a contraparteSenderouReceiveré descartada e o canal é fechado.