Condvar — condition variable. notify_one — wake one waiter.
Condvar:
notify_one:
1use std::sync::{Arc, Condvar, Mutex};23let pair = Arc::new((Mutex::new(false), Condvar::new()));4let pair2 = pair.clone();56thread::spawn(move || {7 let (lock, cvar) = &*pair2;8 let mut ready = lock.lock().unwrap();9 *ready = true;10 cvar.notify_one();11});1213let (lock, cvar) = &*pair;14let mut ready = lock.lock().unwrap();15while !*ready {16 ready = cvar.wait(ready).unwrap();17}
Key: Condvar for condition waiting, notify_one for selective wakeup.