我可以在单线程上下文中安全地使用 Ordering::Relaxed 吗?
Can I safely use Ordering::Relaxed in single-threaded contexts?
我需要 (Ref)UnwindSafe
ty,Cell<bool>
没有提供,所以我用 AtomicBool
代替。
是否保证在单线程上下文中,使用 Relaxed
(存储)排序对一个 Rc<AtomicBool>
的更新在使用 [=15] 的其他 Rc<AtomicBool>
上立即可见=](加载)排序? (Rc
指向相同的 AtomicBool
。)
Ordering
是关于在存在其他线程时的可见性保证。内存访问总是在当前线程中立即可见(除非违反 noalias)。因此,即使是最弱的排序要求 (Relaxed
) 仍然至少与 Cell
.
提供的正常访问一样强
我需要 (Ref)UnwindSafe
ty,Cell<bool>
没有提供,所以我用 AtomicBool
代替。
是否保证在单线程上下文中,使用 Relaxed
(存储)排序对一个 Rc<AtomicBool>
的更新在使用 [=15] 的其他 Rc<AtomicBool>
上立即可见=](加载)排序? (Rc
指向相同的 AtomicBool
。)
Ordering
是关于在存在其他线程时的可见性保证。内存访问总是在当前线程中立即可见(除非违反 noalias)。因此,即使是最弱的排序要求 (Relaxed
) 仍然至少与 Cell
.