use std::sync::{Arc, Mutex};
use std::thread;
// 定义全局变量counter
static mut COUNTER: Option<Arc<Mutex<i32>>> = None;
fn main() {
// 初始化全局变量counter
unsafe {
COUNTER = Some(Arc::new(Mutex::new(0)));
}
let mut handles = vec![];
for _ in 0..10 {
let counter = unsafe { COUNTER.as_ref().unwrap().clone() };
let handle = thread::spawn(move || {
let mut num = counter.lock().unwrap();
*num += 1;
});
handles.push(handle);
}
for handle in handles {
handle.join().unwrap();
}
let result = unsafe { COUNTER.as_ref().unwrap().lock().unwrap() };
println!("Final counter value: {}", *result);
}