diff --git a/3_Memory_Ordering.md b/3_Memory_Ordering.md index 66c1309..94e381b 100644 --- a/3_Memory_Ordering.md +++ b/3_Memory_Ordering.md @@ -80,7 +80,7 @@ Rust 的内存模型,它更多的抄自 C++,与任何现有的处理器架 基础的 happens-before 规则是同一线程内的任何事情都按顺序发生。如果线程线程正在执行 `f(); g();`,那么 `f()` 在 `g()` 之前发生。 -然而,在线程之间,happens-before 仅发生在一些特定的情况下,例如,在创建和等待线程时,解锁和锁定 mutex,以及使用非 relaxed 的原子操作。Relaxed 内存排序时最基本的(也是性能最好的)内存排序,它本身并不会导致任何跨线程的 happens-before 关系。 +然而,在线程之间,happens-before 仅发生在一些特定的情况下,例如,在创建和等待线程时,解锁和锁定 mutex,以及使用非 relaxed 的原子操作。Relaxed 内存排序是最基本的(也是性能最好的)内存排序,它本身并不会导致任何跨线程的 happens-before 关系。 为了探索这意味着什么,让我们看看以下示例,我们假设 a 和 b 有不同的线程并发执行: