blob: d2e2936e0375a6764b68818916521cede4fc12d7 [file] [log] [blame]
Matthias Benkard848739c2019-02-28 13:59:58 +01001// Fearless Concurrency
2
3#![allow(dead_code)]
4#![allow(unused_imports)]
5
6use rust_tutorial::*;
7
8use std::sync::{Mutex, Arc};
9use std::thread;
10
11fn main() {
12 let counter = Arc::new(Mutex::new(0));
13 let mut workers = vec![];
14
15 for _ in 0..10 {
16 let counter = Arc::clone(&counter);
17
18 let worker = thread::spawn(move || {
19 let mut num = counter.lock().unwrap();
20 *num += 1;
21 });
22
23 workers.push(worker);
24 }
25
26 for worker in workers {
27 worker.join().unwrap();
28 }
29
30 println!("Result: {}", *counter.lock().unwrap());
31}