由于 rust 将互斥锁应用为其数据的容器/所有者并且不使用像 C++ 这样的外部保护,我想知道 rust 编译器是否可能在以下伪代码中重新排序循环的内部部分(并且这样做, 使其无效..) 如果是这样,我该如何防止它?
let mut some_type = SomeType::new();
let mut my_lock = MyLock::new();
(0..n).par_iter().for_each(|| {
my_lock.lock();
do_some_stuff_with(&mut some_type);
my_lock.unlock();
})