互斥器

2022-04-29  本文已影响0人  简书网abc

1,多个线程使用互斥器Arc

use std::sync::{Mutex, Arc};
use std::thread;

fn main() {
    let counter = Arc::new(Mutex::new(0));
    let mut handles = vec![];

    for _ in 0..10 {
        let new_counter = Arc::clone(&counter);
        let handle = thread::spawn(move || {
            let mut mun = new_counter.lock().unwrap();
            *mun += 1;
        });

        handles.push(handle);
    }

    for handle in handles {
        handle.join().unwrap();
    }
    println!("result = {}", *counter.lock().unwrap())
}
上一篇 下一篇

猜你喜欢

热点阅读