Arc<Mutex<T>> — exclusive access. Arc<RwLock<T>> — shared/exclusive.
Arc<Mutex<T>>:
Arc<RwLock<T>>:
1use std::sync::{Arc, Mutex, RwLock};23let data = Arc::new(Mutex::new(vec![]));4data.lock().unwrap().push(1);56let data = Arc::new(RwLock::new(vec![]));7data.read().unwrap(); // Multiple readers OK8data.write().unwrap().push(1); // Exclusive write
Key: Mutex for exclusive, RwLock for read-heavy.