boost库中的原子操作

 boost库这中有有关多线程的内容,粗略看书,似乎比C++ 11 的多线程好一丢丢。做个读书笔记,以后忘了可以参考。

原子操作  atomic

需要包含头文件

#include <boost/atomic.hpp>

要用这个头文件,boost库是需要编译的,最好是root权限下编译,要不会出错。 

    boost::atomic<int> a(10);//定义a为原子操作,
    assert( a == 10);//  如果a等于是不报错,不等于10 报错
    std::cout << "a = " << a << std::endl;
    boost::atomic_int b(100);//设置b为原子操作
    assert(b == 100);
    std::cout<< "b = " << b << std::endl;
    boost::atomic_int c(1);//设置c为原子操作
    assert(c == 1);
    std::cout << "c = " << c << std::endl;
    //load()函数为取值函数,也就是输出函数,输出为原子操作
    std::cout << "b.load() = " << b.load()<< std::endl;
    //exchange()函数为交换函数,交换之后返回之前的值
    //把111交换到a中,b=200,这个也是原子操作,=重载了store()函数
    //store()函数为幅值函数,原子操作。
    a.exchange(111);
    b = 200;
    c.store(11);
    
    boost::atomic<int> cc(c.exchange(a));
    std::cout << "cc.load() = " << cc.load() << std::endl;
    std::cout << "a.load() = " << a.load() << std::endl;
    std::cout << "b.load() = " << b.load() << std::endl;
    std::cout << "c.load() = " << c.load() << std::endl;

 

在Ubuntu16系统下截屏。这个可以按F2右面那个按键,全部是全屏幕截屏,PRINT SCREEN 这个按键,局部截屏需要设置一下的。进入设置->键盘->截图->对选区截图

就这样就好了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

波雅_汉库克

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值