Відправники та отримувачі
Канали Rust мають дві частини: Sender<T>
і Receiver<T>
. Дві частини з’єднані через канал, але ви бачите лише кінцеві точки.
use std::sync::mpsc; fn main() { let (tx, rx) = mpsc::channel(); tx.send(10).unwrap(); tx.send(20).unwrap(); println!("Прийнято: {:?}", rx.recv()); println!("Прийнято: {:?}", rx.recv()); let tx2 = tx.clone(); tx2.send(30).unwrap(); println!("Прийнято: {:?}", rx.recv()); }
This slide should take about 9 minutes.
mpsc
означає багато виробників, один споживач (Multi-Producer, Single-Consumer).Sender
іSyncSender
реалізуютьClone
(тобто ви можете створити кілька виробників), аReceiver
— ні.send()
іrecv()
повертаютьResult
. Якщо вони повертаютьErr
, це означає, що відповіднийSender
абоReceiver
видалено, а канал закрито.