summaryrefslogtreecommitdiff
path: root/concurrency
diff options
context:
space:
mode:
authorAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
committerAdam Carpenter <53hornet@gmail.com>2019-03-27 15:32:37 -0400
commit67cdcc2e12118becb823e20a40cc2687f2b8425a (patch)
treeed92c3234b89079e6d4cf36f5e80c5ffa79def48 /concurrency
parente25482fca375d318a39c3b54db396b0db6e0b263 (diff)
downloadlearning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz
learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip
Started Rust in Action MEAP.
Diffstat (limited to 'concurrency')
-rw-r--r--concurrency/Cargo.lock4
-rw-r--r--concurrency/Cargo.toml7
-rw-r--r--concurrency/src/main.rs137
3 files changed, 0 insertions, 148 deletions
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.");
-}