c++标准库多线程入门
从c++ 11开始,语言核心和标准库开始引入了对多线程的原生支持。如下所示:
int doSth(char c)
{
default_random_engine dre(c);
uniform_int_distribution<int> id(,);
for(int i=;i<;i++) {
this_thread::sleep_for(chrono::milliseconds(id(dre)));
cout.put(c).flush();
}
return c;
} int func1() {
return doSth(',');
} int func2() {
return doSth('+');
} int _tmain(int argc, _TCHAR* argv[])
{
cout << "func1() background, func2() foreground." << endl;
future<int> result1(async(func1));
int result2 = func2();
cout << "result2先返回=" << result2 << endl;
int result = result1.get() + result2;
cout << "异步测试结束." << endl;
}
输出如下:
func1() background, func2() foreground.
++,+,,+,+,+,+,,+,+,+result2先返回=43
异步测试结束.
作为入门课,c++标准库第二版第18章还是不错的。
虽然如此,大量的遗留、甚至是当前正在开发的系统使用的仍然是开源的线程库比如pthread或者openMP。作为最老牌的线程库pthread,无论如何都是应该学习和掌握的。
c++标准库多线程入门的更多相关文章
- Python学习笔记16:标准库多线程(threading包裹)
		
Python主要是通过标准库threading包来实现多线程. 今天,互联网时代,所有的server您将收到大量请求. server要利用多线程的方式的优势来处理这些请求,为了改善网络port读写效率 ...
 - [技术] OIer的C++标准库 : STL入门
		
注: 本文主要摘取STL在OI中的常用技巧应用, 所以可能会重点说明容器部分和算法部分, 且不会讨论所有支持的函数/操作并主要讨论 C++11 前支持的特性. 如果需要详细完整的介绍请自行查阅标准文档 ...
 - 通过atomic_flag简单自旋锁实现简单说明标准库中锁使用的memory_order
		
在使用标准库中的加锁机制时,例如我们使用std::mutex,写了如下的代码(下面的代码使用condition_variable可能更合适) std::mutex g_mtx; int g_resNu ...
 - Python标准库08 多线程与同步 (threading包)
		
Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...
 - 《JavaScript语言入门教程》记录整理:运算符、语法和标准库
		
目录 运算符 算数运算符 比较运算符 布尔运算符 二进制位运算符 void和逗号运算符 运算顺序 语法 数据类型的转换 错误处理机制 编程风格 console对象和控制台 标准库 Object对象 属 ...
 - c++多线程编程:实现标准库accumulate函数的并行计算版本
		
今天使用c++实现了标准库头文件<numeric>中的accumulate函数的并行计算版本,代码如下,注释写的比较详细,仅对其中几点进行描述: ①该实现假定不发生任何异常,故没有对可能产 ...
 - 《挑战30天C++入门极限》C++的iostream标准库介绍(3)
		
C++的iostream标准库介绍(3) C语言提供了格式化输入输出的方法,C++也同样,但是C++的控制符使用起来更为简单方便,在c++下有两中方法控制格式化输入输出. 1.有流对象的成员函 ...
 - 《挑战30天C++入门极限》C++的iostream标准库介绍(2)
		
C++的iostream标准库介绍(2) 接下来我们继续看一下C++风格的串流控制,C++引入了ostringstream.istringstream.stringstream这三个类,要使用 ...
 - 《挑战30天C++入门极限》C++的iostream标准库介绍(1)
		
C++的iostream标准库介绍(1) 我们从一开始就一直在利用C++的输入输出在做着各种练习,输入输出是由iostream库提供的,所以讨论此标准库是有必要的,它与C语言的stdio库不同 ...
 
随机推荐
- HDU 2476 String painter(区间DP)
			
String painter Time Limit: 5000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Tota ...
 - HDU-1166敌兵布阵(线段树)
			
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi ...
 - MPD大会北京上海两站圆满落幕
			
MPD大会北京上海两站圆满落幕 由麦思博(MSUP)主办的亚太软件研发团队管理峰会(以下简称MPD大会)分别于6月15及6月22日在北京.上海成功举办.国内外知名软件.互联网行业项目领头人及业内从业人 ...
 - windows下安装pytorch
			
安装: https://blog.csdn.net/xiangxianghehe/article/details/80103095 Windows下通过pip安装PyTorch 0.4.0 impor ...
 - 自己实现一个简单的网络音乐mp3播放器
			
大繁至简,把思路搞清楚才是最重要的,如何去做依托于使用什么来实现这项功能 列出我使用的基本类 NSURLSessionDataTask 数据获取类 NSFileHandle 数据缓存和数据读取类 Au ...
 - cordova插件file使用时遇到的一个平台相关的问题
			
使用cordova-plugin-file可以帮助我们方便的操作app中的图片等文件,分享一下我在用该插件从图库读取图片时遇到的一个平台相关的小问题. 使用场景,我会在APP中新增一张图片,会有一个可 ...
 - function &w(){}
			
CodeIgniter 3.1.0 <?php //\system\core\Common.php function &load_class($class, $directory = ' ...
 - 一键安装openstack juno 之controller node.
			
原文名称: OpenStack Juno Scripted Installation on CentOS 7 Step I: 本机信息配置 CONTROLLER_IP=192.168.173.133 ...
 - c#导出ListView中的数据到Excel表格
			
1.添加组件:Microsoft.Office.Interop.Excel 步骤:右键点击“引用”--->添加引用--->COM--->Microsoft.Office.Intero ...
 - 关于LeNet-5卷积神经网络 S2层与C3层连接的参数计算的思考???
			
https://blog.csdn.net/saw009/article/details/80590245 关于LeNet-5卷积神经网络 S2层与C3层连接的参数计算的思考??? 首先图1是LeNe ...