C++11 thread mutex 我怎么感觉我被坑了。

二话不说,直接上代码了。

1#include <thread> 2#include <iostream> 3#include <mutex> 4using namespace std; 5 6volatile int shared_value = 0; 7volatile int running_count = 1000; 8mutex mtx; 9 10 11void change_value (int n) 12{ 13 for (int i = 0; i < n; i++) 14 { 15 if (mtx.try_lock()) 16 { 17 shared_value++; 18 mtx.unlock(); 19 } 20 } 21 running_count--; 22} 23 24int main () 25{ 26 thread t[100]; 27 for (int i = 0; i < 100; i++) 28 { 29 t[i] = thread (change_value, 1000); 30 } 31 for (int i = 0; i < 100; i++) 32 { 33 t[i].join(); 34 } 35 36 cout << shared_value << endl; 37 cout << running_count << endl; 38 39 40 return 0; 41}
点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

C++原子类实现

引言在系统实现的过程中,经常需要用到计数功能,为了多线程下的安全使用,我自己定义了一个原子类。基于Mutex的实现我基于Mutex实现了一个简单的原子类,代码如下/说明:自定义整数操作的原子类,减少代码中的各种锁/ifndef_ATOMIC_INT64

C++ multimap初步使用

multimap与map的区别就在于,multimap可以一个键值对应多个值,而map只能一个键值对应一个值include <iostreaminclude <mapint main(){std::multimap<int,int x;x.insert(std::pa

16进制显示文件内容

include <iostreaminclude <stdio.husing namespace std;define BUFF_SIZE 20int main (){FILE fp;fp  fopen("epp370p0190_0408.13

C++语法学习笔记四十八:单例设计模式共享数据分析、解决,call_once

实例代码://include<iostreaminclude<vectorinclude<threadinclude<mutexusingnamespacestd;classA{public: