
C++11 thread mutex 我怎么感觉我被坑了
1个回答
2016-07-13 · 百度知道合伙人官方认证企业
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
关注

展开全部
C++11 thread mutex代码
#include <iostream>
#include <mutex>
using namespace std;
volatile int shared_value = 0;
volatile int running_count = 1000;
mutex mtx;
void change_value (int n)
{
for (int i = 0; i < n; i++)
{
if (mtx.try_lock())
{
shared_value++;
mtx.unlock();
}
}
running_count--;
}
int main ()
{
thread t[100];
for (int i = 0; i < 100; i++)
{
t[i] = thread (change_value, 1000);
}
for (int i = 0; i < 100; i++)
{
t[i].join();
}
cout << shared_value << endl;
cout << running_count << endl;
return 0;
}
#include <iostream>
#include <mutex>
using namespace std;
volatile int shared_value = 0;
volatile int running_count = 1000;
mutex mtx;
void change_value (int n)
{
for (int i = 0; i < n; i++)
{
if (mtx.try_lock())
{
shared_value++;
mtx.unlock();
}
}
running_count--;
}
int main ()
{
thread t[100];
for (int i = 0; i < 100; i++)
{
t[i] = thread (change_value, 1000);
}
for (int i = 0; i < 100; i++)
{
t[i].join();
}
cout << shared_value << endl;
cout << running_count << endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询