Canais (channels)
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; use std::thread; fn main() { let (tx, rx) = mpsc::channel(); tx.send(10).unwrap(); tx.send(20).unwrap(); println!("Received: {:?}", rx.recv()); println!("Received: {:?}", rx.recv()); let tx2 = tx.clone(); tx2.send(30).unwrap(); println!("Received: {:?}", rx.recv()); }
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.