利用atomic关键字,来控制变量在多线程中的同步。
代码是学习语言最好的方式,上代码:
#include <iostream>
#include<thread>
#include<atomic>
#include<vector>
#include<windows.h>
using namespace std;
void fun(atomic<int>&counter)
{
for(int i=0;i<100;i++)
{
++counter;
Sleep(1000);
}
}
int main()
{
atomic<int>counter(0);
vector<thread>threads;
for(int i=0;i<100;i++)
{
threads.push_back(thread(fun,ref(counter)));
}
cout<<counter<<endl;
for(auto &t : threads)
t.join();
return 0;
}
本文通过一个具体的C++代码示例介绍了如何使用atomic关键字来确保变量在多线程环境中的同步更新。代码中创建了100个线程,每个线程递增一个共享的atomic整型变量100次,并在每次递增后暂停1秒。
714

被折叠的 条评论
为什么被折叠?



