std::sync — blocking primitives. tokio::sync — async primitives.
std::sync:
tokio::sync:
1use tokio::sync::Mutex;23let data = Mutex::new(5);45async fn update(data: &Mutex<i32>) {6 let mut val = data.lock().await;7 *val += 1;8}
Key: Use tokio::sync in async code, std::sync in blocking code.