Jus*_*ter 16 c++ c++11 stdatomic
考虑以下两种变体:
std::atomic<int> a;
a = 1;
int b = a;
Run Code Online (Sandbox Code Playgroud)
和
std::atomic<int> a;
a.store(1);
int b = a.load();
Run Code Online (Sandbox Code Playgroud)
我从文档中看到第二个是完全原子的,但我不明白何时应该使用哪个以及什么是细节上的差异.
Mik*_*our 20
这两个例子是等价的; operator=并且operator T被定义为等效于使用参数的默认值调用store和.loadmemory_order
如果您对该默认值感到满意memory_order_seq_cst,那么每次访问都充当内存栅栏,那么请使用看起来更漂亮的内容.如果要指定其他值,则需要使用这些函数,因为运算符不能接受第二个参数.
| 归档时间: |
|
| 查看次数: |
2157 次 |
| 最近记录: |