Canales
Los canales de Rust tienen dos partes: Sender<T>
y Receiver<T>
. Las dos partes están conectadas a través del canal, pero solo se ven los puntos finales.
use std::sync::mpsc; fn main() { let (tx, rx) = mpsc::channel(); tx.send(10).unwrap(); tx.send(20).unwrap(); println!("Recibido: {:?}", rx.recv()); println!("Recibido: {:?}", rx.recv()); let tx2 = tx.clone(); tx2.send(30).unwrap(); println!("Recibido: {:?}", rx.recv()); }
mpsc
son las siglas de Multi-Producer, Single-Consumer (multiproductor, consumidor único.)Sender
ySyncSender
implementanClone
(es decir, puedes crear varios productores), peroReceiver
no.send()
yrecv()
devuelvenResult
. Si devuelvenErr
, significa que el homólogoSender
oReceiver
se ha eliminado y el canal se ha cerrado.