boost的原子操作
2015-06-03 15:50
281 查看
[cpp] view
plaincopy
int a=0;
std::cout<<a<<std::endl;
boost::thread t1([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a+=1;
}
});
boost::thread t2([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a-=1;
}
});
t1.join();
t2.join();
std::cout<<'\t'<<a<<std::endl;
输出:
-3529
[cpp] view
plaincopy
boost::atomic_int a(0);
std::cout<<a<<std::endl;
boost::thread t1([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a+=1;
}
});
boost::thread t2([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a-=1;
}
});
t1.join();
t2.join();
std::cout<<'\t'<<a<<std::endl;
输出
0
plaincopy
int a=0;
std::cout<<a<<std::endl;
boost::thread t1([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a+=1;
}
});
boost::thread t2([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a-=1;
}
});
t1.join();
t2.join();
std::cout<<'\t'<<a<<std::endl;
输出:
-3529
[cpp] view
plaincopy
boost::atomic_int a(0);
std::cout<<a<<std::endl;
boost::thread t1([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a+=1;
}
});
boost::thread t2([&](){
for (int cnt=0;cnt<100000;cnt++)
{
a-=1;
}
});
t1.join();
t2.join();
std::cout<<'\t'<<a<<std::endl;
输出
0
相关文章推荐
- boost相关小知识(长期顶置更新)
- .NET中保证线程安全的高级方法Interlocked类使用介绍
- Java线程安全中的单例模式
- 深入线程安全容器的实现方法
- PHP 线程安全与非线程安全版本的区别深入解析
- 深入理解线程安全与Singleton
- C++单元测试:boost.test
- 多线程问题及处理方法【转】
- 单核,多核CPU的原子操作
- Java之线程安全的简单理解
- Ubuntu下如何安装boost?
- How to get a boost::shared_ptr from this
- android的线程安全
- ConcurrentHashMap并不是绝对线程安全的
- Springmvc并发访问的线程安全性问题
- boost 库 enable_shared_from_this 实现原理分析
- boost bind使用指南
- Servlet和 Struts线程安全问题
- 使用boost进行CRC64计算
- [网络开发]boost::asio简介