Unbounded Channels

You get an unbounded and asynchronous channel with mpsc::channel():

  1. use std::sync::mpsc;
  2. use std::thread;
  3. use std::time::Duration;
  4. fn main() {
  5.     let (tx, rx) = mpsc::channel();
  6.     thread::spawn(move || {
  7.         let thread_id = thread::current().id();
  8.         for i in 0..10 {
  9.             tx.send(format!("Message {i}")).unwrap();
  10.             println!("{thread_id:?}: sent Message {i}");
  11.         }
  12.         println!("{thread_id:?}: done");
  13.     });
  14.     thread::sleep(Duration::from_millis(100));
  15.     for msg in rx.iter() {
  16.         println!("Main: got {msg}");
  17.     }
  18. }