话不多说直接上代码!
#include<thread>
#include<iostream>
using namespace std;
using namespace this_thread;
/*
原子操作:对变量的读写操作不可分割
atomic:模板类
atomic<int> open(0); 或 open = 0;
*/
int valut = 0;
atomic<int> a_valu = 0;
void testFunc()
{
for (int i = 0; i < 10000; i++)
{
valut++;
a_valu++;
}
}
int main()
{
thread t1(testFunc);
thread t2(testFunc);
t1.join();
t2.join();
cout << valut << endl;
cout << a_valu << endl;
return 0;
}
该代码示例展示了在C++中使用原子操作(atomic)在多线程环境下对变量进行安全的递增操作,避免数据竞争问题。通过创建两个线程并分别对非原子变量和原子变量执行递增操作,比较其结果差异。
859





