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()); }
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.