Відправники та отримувачі
Канали 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видалено, а канал закрито.