std::atomic是C++的原子操作,属于并发中的线程安全类型,可以理解成数据自带mutex锁,不同线程访问同一个数据时不出错,各线程不冲突。
#include <atomic>
#include <thread>
#include <list>
std::atomic_int g_iCount = 100;
void threadfunc1()
{
while (g_iCount > 0)
{
printf("threadfunc1 g_iCount:%d\r\n", --g_iCount);
}
}
void threadfunc2()
{
while (g_iCount > 0)
{
printf("threadfunc2 g_iCount:%d\r\n", --g_iCount);
}
}
int main(int argc, char** argv)
{
thread t1(threadfunc1);
thread t2(threadfunc1);
thread t3(threadfunc2);
thread t4(threadfunc2);
t1.join();
t2.join();
t3.join();
t4.join();
return 0;
}
参考博客:
1> https://blog.youkuaiyun.com/delongwang520/article/details/79604329
2> https://blog.youkuaiyun.com/Poo_Chai/article/details/93652619