这是我的示例代码:
use std::sync::{Arc, Mutex};
use std::thread;
fn main() {
println!("{:?}", test());
}
fn test() -> Vec<(u32, u32)> {
let lock = Arc::new(Mutex::new(Vec::new()));
let threads = Vec::new();
for _ in 0..8 {
let l = lock.clone();
threads.push(thread::spawn(move || {
let mut _lock = l.lock().unwrap();
_lock.push((12, 28));
}));
}
for t in threads { t.join(); }
return lock.lock().unwrap();
}
错误类型不匹配:预期'Vec'找到'MutextGuard',我已经测试过没有'lock()'。
是否有解决方案或更好的解决此类问题的方法?