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 这个按键,局部截屏需要设置一下的。进入设置->键盘->截图->对选区截图
就这样就好了。