#pragma region atomic
#include<atomic>
#include<thread>
#include<mutex>
int g_myCount = 0;
atomic<int> g_myCount1 = 0;//atomic<>无 *= /= %=等操作
mutex mu;
//无锁,随机值
//void myThread()
//{
// for (int i = 0; i < 100000; ++i)
// {
// ++g_myCount;
// }
//}
//加锁,正确
//void myThread()
//{
// unique_lock<mutex> lock(mu);
//
// for (int i = 0; i < 100000; ++i)
// {
//
// ++g_myCount;
// }
//}
//原子定义变量
void myThread()
{
for (int i = 0; i < 100000; ++i)
{
++g_myCount1;
}
}
#pragma endregion
int main()
{
thread t1(myThread);
thread t2(myThread);
t1.join();
t2.join();
cout << g_myCount1 << endl;
}
atomic简单用法
最新推荐文章于 2025-04-12 13:46:48 发布