Mutex — lock-based. Atomic — lock-free operations.
Mutex:
Atomic:
1use std::sync::atomic::{AtomicUsize, Ordering};2use std::sync::Mutex;34let counter = AtomicUsize::new(0);5counter.fetch_add(1, Ordering::SeqCst);67let data = Mutex::new(vec![1, 2, 3]);8data.lock().unwrap().push(4);
Key: Atomic for counters/flags, Mutex for complex data.