繁体   English   中英

在唯一写入该变量的线程中,使用memory_order_relaxed加载原子变量是否安全?

[英]Is it safe to use memory_order_relaxed to load an atomic variable, when in the only thread that writes to that variable?

我有一个写入原子变量的线程。 (使用memory_order_release)。 线程A

还有许多其他线程从该变量读取。 (使用memory_order_acquire)。 线程B。

在线程A中使用memory_order_relaxed读取该变量是否安全?

是的,从某种意义上讲,它的行为与单线程操作的非原子变量相同,这是安全的。

例如,如果写释放在程序顺序轻松读取之前测序 ,并没有其他写入该变量,然后轻松读取将看到由写入释放写入值( N3337 §1.10.12-13 )。

是的,当线程A中的读取变量时,使用memory_order_relaxed就足够了。由于程序顺序,此读取将始终与发生在之前 ,发生在同一线程中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM