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/Cargo.lock | 4 -- concurrency/Cargo.toml | 7 --- concurrency/src/main.rs | 137 ------------------------------------------------ 3 files changed, 148 deletions(-) delete mode 100644 concurrency/Cargo.lock delete mode 100644 concurrency/Cargo.toml delete mode 100644 concurrency/src/main.rs (limited to 'concurrency') diff --git a/concurrency/Cargo.lock b/concurrency/Cargo.lock deleted file mode 100644 index 74a4d7a..0000000 --- a/concurrency/Cargo.lock +++ /dev/null @@ -1,4 +0,0 @@ -[[package]] -name = "concurrency" -version = "0.1.0" - diff --git a/concurrency/Cargo.toml b/concurrency/Cargo.toml deleted file mode 100644 index 0bfe465..0000000 --- a/concurrency/Cargo.toml +++ /dev/null @@ -1,7 +0,0 @@ -[package] -name = "concurrency" -version = "0.1.0" -authors = ["Adam Carpenter <53hornet@gmail.com>"] -edition = "2018" - -[dependencies] 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