summaryrefslogtreecommitdiff
path: root/concurrency/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'concurrency/src/main.rs')
-rw-r--r--concurrency/src/main.rs137
1 files changed, 0 insertions, 137 deletions
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.");
-}