首页 > 其他 > 详细

boost的原子操作

时间:2015-06-03 17:47:38      阅读:152      评论:0      收藏:0      [点我收藏+]
  1. int a=0;  
  2. std::cout<<a<<std::endl;  
  3. boost::thread t1([&](){  
  4.       
  5.     for (int cnt=0;cnt<100000;cnt++)  
  6.     {  
  7.         a+=1;  
  8.     }  
  9.   
  10. });  
  11. boost::thread t2([&](){  
  12.     for (int cnt=0;cnt<100000;cnt++)  
  13.     {  
  14.         a-=1;  
  15.     }  
  16.   
  17. });  
  18. t1.join();  
  19. t2.join();  
  20. std::cout<<‘\t‘<<a<<std::endl;  

输出:

-3529


  1. boost::atomic_int a(0);  
  2. std::cout<<a<<std::endl;  
  3. boost::thread t1([&](){  
  4.       
  5.     for (int cnt=0;cnt<100000;cnt++)  
  6.     {  
  7.         a+=1;  
  8.     }  
  9.   
  10. });  
  11. boost::thread t2([&](){  
  12.     for (int cnt=0;cnt<100000;cnt++)  
  13.     {  
  14.         a-=1;  
  15.     }  
  16.   
  17. });  
  18. t1.join();  
  19. t2.join();  
  20. std::cout<<‘\t‘<<a<<std::endl;  

输出

0

boost的原子操作

原文:http://blog.csdn.net/nyist327/article/details/46346869

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!