std::atomic load和store
时间: 2024-02-04 15:04:13 浏览: 226
浅谈关于C++memory_order的理解
std::atomic的load和store方法用于对原子类型进行读取和写入操作。load方法用于读取原子对象的值,而store方法用于将给定的值存储到原子对象中。
下面是一个示例代码,演示了std::atomic的load和store方法的使用:
```cpp
#include <iostream>
#include <atomic>
int main() {
std::atomic<int> x(0);
// 使用store方法将值存储到原子对象中
x.store(1, std::memory_order_relaxed);
// 使用load方法读取原子对象的值
int value = x.load(std::memory_order_relaxed);
std::cout << "Value: " << value << std::endl;
return 0;
}
```
在上面的示例中,我们创建了一个std::atomic对象x,并使用store方法将值1存储到x中。然后,我们使用load方法读取x的值,并将其打印出来。
注意,load和store方法都接受一个std::memory_order参数,用于指定内存序。在示例中,我们使用了std::memory_order_relaxed,它是一种较弱的内存序,不会引入额外的同步开销。你可以根据具体的需求选择适当的内存序。
阅读全文