用法
void store (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;
void store (T val, memory_order sync = memory_order_seq_cst) noexcept;
修改包含的值,替换所含值与VAL。
该操作是原子性的,并且遵循sync指定的内存顺序。
参数
返回值
无
异常
从不抛出异常
例
#include <iostream>
#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 << "foo: " << x << '\n';
}
int main ()
{
std::thread first (print_foo);
std::thread second (set_foo,10);
first.join();
second.join();
return 0;
}
输出
foo: 10
本文详细介绍了C++11中的std::atomic::store特性,包括其用法、参数、返回值以及异常情况。std::atomic::store能原子性地修改变量值,保证了多线程环境中的数据一致性。文中通过实例进行说明。
4263

被折叠的 条评论
为什么被折叠?



