rustuse std::sync::{Arc, Mutex};
use std::thread;
fn main() {
let data = Arc::new(Mutex::new(0));
let handles: Vec<_> = (0..10).map(|_| {
let data = Arc::clone(&data);
thread::spawn(move || {
let mut num = data.lock().unwrap();
*num += 1;
})
}).collect();
for handle in handles {
handle.join().unwrap();
}
println!("Final value: {:?}", *data.lock().unwrap());
}
Arc
でスレッド間の共有 Mutex
でデータの排他制御