#include <iostream>
#include <thread>
#include <vector>
#include <functional>
#include <atomic>
void func(int& _counter)
{
for(int i=0; i<10000; i++)
++_counter;
}
void func2(std::atomic<int>& _counter)
{
for(int i=0; i<10000; i++)
++_counter;
}
int main()
{
//int counter = 0;
std::atomic<int> _counter(0); //使用原子变量
std::vector<std::thread> _threads;
for(int i=0; i<10; i++)
_threads.push_back(std::thread{func2, std::ref(_counter)}); //要符合线程初始逻辑
for(auto& _t : _threads)
{
_t.join(); //防止主线程退出
}
std::cout<<"result:="<< _counter<<std::endl;
return 0;
#include <thread>
#include <vector>
#include <functional>
#include <atomic>
void func(int& _counter)
{
for(int i=0; i<10000; i++)
++_counter;
}
void func2(std::atomic<int>& _counter)
{
for(int i=0; i<10000; i++)
++_counter;
}
int main()
{
//int counter = 0;
std::atomic<int> _counter(0); //使用原子变量
std::vector<std::thread> _threads;
for(int i=0; i<10; i++)
_threads.push_back(std::thread{func2, std::ref(_counter)}); //要符合线程初始逻辑
for(auto& _t : _threads)
{
_t.join(); //防止主线程退出
}
std::cout<<"result:="<< _counter<<std::endl;
return 0;
}
欢迎加入Jack_Li的金融交易-知识星球,这里有高大上的金融业务学习和编程知识学习,让你掌握时下最火爆的两门top行业信息,在这里你可以获得Jack_Li的经验,获得Jack_Li同学的内部推荐(证券公司,基金公司,大型金融机构等,入圈5天后发布),欢迎加入(请扫二维码):