Mutex<T> — exclusive access. RwLock<T> — shared/exclusive.
Mutex<T>:
RwLock<T>:
1use std::sync::{Mutex, RwLock};23// Mutex4let data = Mutex::new(vec![]);5let mut v = data.lock().unwrap();6v.push(1);78// RwLock9let data = RwLock::new(vec![]);10let r = data.read().unwrap(); // Multiple readers11drop(r);12let mut w = data.write().unwrap(); // Exclusive write13w.push(1);
Key: Mutex for exclusive, RwLock for read-heavy.