1、atomic 简介
https://blog.youkuaiyun.com/zxc024000/article/details/100767211
https://www.cnblogs.com/zifeiye/p/8194949.html
3、
std::atomic::compare_exchange_weak
bool compare_exchange_weak (T& expected, T val, memory_order sync = memory_order_seq_cst) volatile noexcept; bool compare_exchange_weak (T& expected, T val, memory_order sync = memory_order_seq_cst) noexcept; bool compare_exchange_weak (T& expected, T val, memory_order success, memory_order failure) volatile noexcept; bool compare_exchange_weak (T& expected, T val, memory_order success, memory_order failure) noexcept;
当前值与期望值相等时,修改当前值为设定值,返回true
当前值与期望值不等时,将期望值修改为当前值,返回false
这个函数可能在满足true的情况下仍然返回false,所以只能在循环里使用,否则可以使用它的strong版本