From 67cdcc2e12118becb823e20a40cc2687f2b8425a Mon Sep 17 00:00:00 2001 From: Adam Carpenter <53hornet@gmail.com> Date: Wed, 27 Mar 2019 15:32:37 -0400 Subject: Started Rust in Action MEAP. --- concurrency/src/main.rs | 137 ------------------------------------------------ 1 file changed, 137 deletions(-) delete mode 100644 concurrency/src/main.rs (limited to 'concurrency/src') diff --git a/concurrency/src/main.rs b/concurrency/src/main.rs deleted file mode 100644 index 53417eb..0000000 --- a/concurrency/src/main.rs +++ /dev/null @@ -1,137 +0,0 @@ -use std::sync::Arc; -use std::rc::Rc; -use std::sync::Mutex; -use std::thread; -use std::sync::mpsc; -use std::time::Duration; - -fn main() { -// let handle = thread::spawn(|| { -// for i in 1..10 { -// println!("spawned: {}", i); -// thread::sleep(Duration::from_millis(1)); -// } -// }); -// -// for i in 1..5 { -// println!("main: {}", i); -// thread::sleep(Duration::from_millis(1)); -// } -// -// handle.join().unwrap(); - - - -// let v = vec![1, 2, 3]; -// -// let handle = thread::spawn(move || { -// println!("Here's a vector: {:?}", v); -// }); -// -// drop(v); -// handle.join().unwrap(); - - - -// let (tx, rx) = mpsc::channel(); -// -// thread::spawn(move || { -// let val = String::from("hi"); -// tx.send(val).unwrap(); -// dbg!(val); -// }); -// -// let received = rx.recv().unwrap(); -// dbg!(received); - - - -// let (tx, rx) = mpsc::channel(); -// -// thread::spawn(move || { -// let vals = vec![ -// String::from("the"), -// String::from("walking"), -// String::from("thread"), -// ]; -// -// for val in vals { -// tx.send(val).unwrap(); -// thread::sleep(Duration::from_secs(1)); -// } -// }); -// -// for received in rx { -// println!("got {}", received); -// } - - - -// let (tx, rx) = mpsc::channel(); -// -// let tx1 = mpsc::Sender::clone(&tx); -// thread::spawn(move || { -// let vals = vec![ -// String::from("the"), -// String::from("walking"), -// String::from("thread"), -// ]; -// -// for val in vals { -// tx1.send(val).unwrap(); -// thread::sleep(Duration::from_secs(1)); -// } -// }); -// -// thread::spawn(move || { -// let vals = vec![ -// String::from("welcome"), -// String::from("to"), -// String::from("woodberry"), -// String::from("!"), -// ]; -// -// for val in vals { -// tx.send(val).unwrap(); -// thread::sleep(Duration::from_secs(1)); -// } -// }); -// -// for received in rx { -// dbg!(received); -// } - - - -// let m = Mutex::new(5); -// -// { -// let mut num = m.lock().unwrap(); -// *num = 6; -// } -// -// println!("m = {:?}", m); - - - - let counter = Arc::new(Mutex::new(0)); - let mut handles = vec![]; - - for _ in 0..10 { - let counter = Arc::clone(&counter); - let handle = thread::spawn(move || { - let mut num = counter.lock().unwrap(); - - *num += 1; - }); - handles.push(handle); - } - - for handle in handles { - handle.join().unwrap(); - } - - dbg!(*counter.lock().unwrap()); - - println!("Done."); -} -- cgit v1.2.3