std::atomic load
时间: 2023-11-09 08:16:19 浏览: 150
`std::atomic` 是 C++11 中引入的一个原子类型,用于实现跨多个线程的原子操作。`load` 是 `std::atomic` 的一个成员函数,用于原子地加载(读取)当前的值。
使用 `load` 函数的语法如下:
```
T load(std::memory_order order = std::memory_order_seq_cst) const noexcept;
```
其中,`T` 是 `std::atomic` 对象存储的值的类型,`order` 是一个可选参数,表示内存顺序,默认为 `std::memory_order_seq_cst`。
`load` 函数返回当前的值,并且保证在多线程环境下具有原子性。它可以通过不同的内存顺序模型来提供不同的内存访问保证,如序列一致性(`std::memory_order_seq_cst`)、松散顺序(`std::memory_order_relaxed`)等。
以下是一个示例代码:
```cpp
#include <atomic>
#include <iostream>
int main() {
std::atomic<int> value(42);
int loadedValue = value.load();
std::cout << "Loaded value: " << loadedValue << std::endl;
return 0;
}
```
以上代码创建了一个 `std::atomic<int>` 对象 `value`,然后使用 `load` 函数加载当前的值并打印出来。
阅读全文