C++ Atomic 库 - load
描述
它以原子方式获取原子对象的值。
声明
以下是 std::atomic::load 的声明。
T load( std::memory_order order = std::memory_order_seq_cst ) const;
C++11
T load( std::memory_order order = std::memory_order_seq_cst ) const volatile;
参数
order − 它用于强制执行内存顺序约束。
返回值
它返回原子变量的当前值。
异常
No-noexcept − 这个成员函数从不抛出异常。
示例
在下面的 std::atomic::load 示例中。
#include <atomic>
#include <thread>
std::atomic<int> foo (0);
void set_foo(int x) {
foo.store(x,std::memory_order_relaxed);
}
void print_foo() {
int x;
do {
x = foo.load(std::memory_order_relaxed);
} while (x==0);
std::cout << "test: " << x << '\n';
}
int main () {
std::thread first (print_foo);
std::thread second (set_foo,10);
first.join();
second.join();
return 0;
}

