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