大挪耗

c++原子类型atomic

#include "iostream"
#include "atomic" //原子类型的头文件。

using namespace::std;

int main()
{
    atomic<int> a=3;  //atomic(T vall)noexcept;//转换函数
    cout<<"a="<<a.load()<<endl;  //读取原子变量a的值。输出:a=3.
    a.store(8);  //把8存储到原子变量中
    cout<<"a="<<a.load()<<endl;  //读取原子变量a的值。输出a=8.

    int old;//用于存放原值
    old=a.fetch_add(5);  //把原子变量的值与5相加,返回原值。
    cout<<"old="<<old<<", a="<<a.load()<<endl;  //old=8,a=13.
    old=a.fetch_sub(2);  //把原子变量a的值减2,返回原值
    cout<<"old="<<old<<", a="<<a.load()<<endl;  //old=13,a=.11

    atomic<int>  ii=3;  //原子变量
    int expect=4;  //期待值
    int val=5;  //打算存入原子变量的值
    //比较原子变量的值和预期值expect。
    //如果当个值相等,把val存储到原子变量中.
    //如果当前个值不相等,用原子变量的值更新预期值。
    //执行存储操作时返回true,否则返回false。
    bool bret=ii.compare_exchange_strong(expect,val);
    cout<<"bret="<<bret<<endl;
    cout<<"ii="<<ii<<endl;
    cout<<"expect="<<expect<<endl;



}

a=3
a=8
old=8, a=13
old=13, a=11
bret=0
ii=3
expect=3


已发布

分类

可以收藏大挪耗一下。下载麻烦点城通网盘,站长保证下载速度,不会限速的,放心点就是了;分卷,安卓下载为txt:程序下载为url,不会下载参考不会下载。如果你想让本站活的久一点,请直接捐助

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注