// Fearless Concurrency | |
#![allow(dead_code)] | |
#![allow(unused_imports)] | |
use rust_tutorial::*; | |
use std::sync::{Mutex, Arc}; | |
use std::thread; | |
fn main() { | |
let counter = Arc::new(Mutex::new(0)); | |
let mut workers = vec![]; | |
for _ in 0..10 { | |
let counter = Arc::clone(&counter); | |
let worker = thread::spawn(move || { | |
let mut num = counter.lock().unwrap(); | |
*num += 1; | |
}); | |
workers.push(worker); | |
} | |
for worker in workers { | |
worker.join().unwrap(); | |
} | |
println!("Result: {}", *counter.lock().unwrap()); | |
} |