Rust's std::thread Modul ermöglicht die Erstellung nativer OS-Threads, und mpsc (Multi-Producer, Single-Consumer) Channels ermöglichen sichere Kommunikation zwischen Threads. Der Channel besteht aus einem Sender (tx) und Empfanger (rx). Die spawn-Funktion erstellt einen neuen Thread, und move erlaubt der Closure Besitz von erfassten Variablen zu übernehmen (tx in diesem Fall). Nachrichten, die durch den Channel gesendet werden, sind garantiert ohne Data Races zugestellt. Der Empfanger-Iterator blockiert bis Nachrichten verfugbar sind, was ihn ideal fur die Koordination zwischen Threads macht.
use std::thread;use std::sync::mpsc;use std::time::Duration;fn main() {let (tx, rx) = mpsc::channel();let handle = thread::spawn(move || {for i in 1..=5 {println!("Thread: sending {}", i);tx.send(i).unwrap();thread::sleep(Duration::from_millis(100));}});for received in rx.iter().take(5) {println!("Main: received {}", received);}handle.join().unwrap();println!("Thread completed successfully");}