-
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
-
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的原子操作
原文:http://blog.csdn.net/nyist327/article/details/46346869