diff options
| author | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 | 
|---|---|---|
| committer | Adam Carpenter <53hornet@gmail.com> | 2019-03-27 15:32:37 -0400 | 
| commit | 67cdcc2e12118becb823e20a40cc2687f2b8425a (patch) | |
| tree | ed92c3234b89079e6d4cf36f5e80c5ffa79def48 /concurrency/src | |
| parent | e25482fca375d318a39c3b54db396b0db6e0b263 (diff) | |
| download | learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.tar.xz learning-rust-67cdcc2e12118becb823e20a40cc2687f2b8425a.zip | |
Started Rust in Action MEAP.
Diffstat (limited to 'concurrency/src')
| -rw-r--r-- | concurrency/src/main.rs | 137 | 
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."); -} |