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; }