Rust 中 Mutex 的基本用法

  use std::sync::Mutex;

  use std::thread;

  let counter = Mutex::new(0);

  let mut handles = vec![];

  for _ in 0..10 {

  let counter = counter.clone(); // 克隆 Mutex 以在多个线程中使用

  handles.push(thread::spawn(move || {

  let mut num = counter.lock().unwrap();

  *num += 1;

  }));

  }

  // 等待所有线程完成

  for handle in handles {

  handle.join().unwrap();

  }

  let result = counter.lock().unwrap();

  println!("Result: {}", *result); // 应该输出 10,但并发错误可能导致小于 10 的结果