lock — blocking lock. try_lock — immediate lock attempt.
lock:
try_lock:
1use std::sync::Mutex;23let m = Mutex::new(5);45// Blocking6let mut data = m.lock().unwrap();7*data = 10;8drop(data);910// Non-blocking11if let Ok(mut data) = m.try_lock() {12 *data = 20;13}
Key: lock for blocking, try_lock for non-blocking.