Unbounded Channels
You get an unbounded and asynchronous channel with mpsc::channel():
use std::sync::mpsc;use std::thread;use std::time::Duration;fn main() {let (tx, rx) = mpsc::channel();thread::spawn(move || {let thread_id = thread::current().id();for i in 0..10 {tx.send(format!("Message {i}")).unwrap();println!("{thread_id:?}: sent Message {i}");}println!("{thread_id:?}: done");});thread::sleep(Duration::from_millis(100));for msg in rx.iter() {println!("Main: got {msg}");}}