- 1、本文档共68页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8 天玩转并行开发——第一天 Parallel 的使用
随着多核时代的到来,并行开发越来越展示出它的强大威力,像我们这样的码农再也
不用过多的关注底层线程的实现和手工控制,
要了解并行开发,需要先了解下两个概念:“硬件线程”和“软件线程”。
1. 硬件线程
相信大家手头的电脑都是双核以上的,像我这样古董的电脑都是双核的,这样的双核叫
做物理内核。
硬件线程又叫做逻辑内核,我们可以在”任务管理器“中查看”性能“标签页,如下图,我们知
道有2 个硬件线程。
一般情况下,一个物理内核对应一个逻辑内核,比如我这里的2 对2。当然如果你的cpu
采用的是超线程技术,那么可能就会有4 个物理内核对应
8 个硬件线程,现在有很多服务器都有8 个硬件线程,上午在公司的服务器上截了个图。
我们要知道并行开发要做的事情就是将任务分摊给这些硬件线程去并行执行来达到负载和
加速。
2. 软件线程
相信这个大家最熟悉了,我们知道传统的代码都是串行的,就一个主线程,当我们为了
实现加速而开了很多工作线程,这些工作线程
也就是软件线程。
好,我们知道了基本概念就ok 了,在.net 4.0 中,微软给我们提供了一个新的命名空间:
System.Threading.Tasks。这里面有很多好玩
的东西,作为第一篇就介绍下最基础,最简单的Parallel 的使用。
一: Parallel 的使用
在Parallel 下面有三个常用的方法invoke,for 和forEach。
1: Parallel.Invoke
这是最简单,最简洁的将串行的代码并行化。
1 class Program
2 {
3 static void Main(string[] args)
4 {
5 var watch = Stopwatch.StartNew();
6
7 watch.Start();
8
9 Run1();
10
11 Run2();
12
13 Console.WriteLine(我是串行开发,总共耗时:{0}\n,
watch.ElapsedMilliseconds);
14
15 watch.Restart();
16
17 Parallel.Invoke(Run1, Run2);
18
19 watch.Stop();
20
21 Console.WriteLine(我是并行开发,总共耗时:{0}, watch.ElapsedMilliseconds);
22
23 Console.Read();
24 }
25
26 static void Run1()
27 {
28 Console.WriteLine(我是任务一,我跑了3s);
29 Thread.Sleep(3000);
30 }
31
32 static void Run2()
33 {
34 Console.WriteLine(我是任务二,我跑了5s);
35 Thread.Sleep(5000);
36 }
37 }
在这个例子中可以获取二点信息:
第一:一个任务是可以分解成多个任务,采用分而治之的思想。
第二:尽可能的避免子任务之间的依赖性,因为子任务是并行执行,所以就没有谁一定在前,
谁一定在后的规定了。
2:Parallel.for
我们知道串行代码中也有一个for,但是那个for 并没有用到多核,而Paraller.for 它会在
底层根据硬件线程的运行状况来充分的使用所有的可
利用的硬件线程,注意这里的Parallel.for 的步行是1。
这里我们来演示一下,向一个线程安全的集合插入数据,当然这个集合采用原子性来实现线
程同步,比那些重量级的锁机制更加的节省消耗。
1 class Program
2 {
3 static
您可能关注的文档
- 【RTX操作系统教程】第20篇 独立看门监测多任务的执行状态.pdf
- 第七章 MyBatis存储过程、MyBatis分页、MyBatis一对多增删改查操作.doc
- Arcmap中图形面积与线长度的计算.doc
- 第2章 汇编语言基础与组成原理.ppt
- 神州数码DCFW-1800防火墙快速安装指南解析.pdf
- 2012年11月软考系统集成项目管理工程师考试上午案例题目和答案解析.pdf
- 第5篇第数据库原理5.ppt
- 第13篇-课程设计二——无刷新聊天室.ppt
- 基于Vinnicombe距离的迭代辨识和控制设计.pdf
- 欧盟通用绩效评估框架与其对我国的启示.pdf
- 《语文园地(一)》人教版六年级上册语文精品PPT课件.pptx
- 茶色简约风室内设计专业毕业设计平面方案PPT模板课件.pptx
- 3.12植树节绿色生态环保宣传演讲PPT模板课件.pptx
- 白色大气商务演讲汇报通用PPT模板课件.pptx
- 安全生产规范责任制设备采购计划PPT模板课件.pptx
- 《语文园地(6)》小学语文一年级下册PPT课件(第6.4课时).pptx
- 部门每日早会内容记录情况公司晨会流程介绍PPT模板课件.pptx
- 不同反响创意手机简约手机发布会PPT模板课件.pptx
- 茶文化知识宣讲PPT模板课件.pptx
- 《圆柱的认识》人教版六年级数学下册 (第3.1课时)PPT课件.pptx
最近下载
- 07564唐宋词研究(广东)通关宝典.pdf
- 幼儿园书法练字启蒙第五讲、第六讲完整课件.pptx VIP
- 五年级数学集体备课(初稿) (1).doc
- 人教精通版2024三年级英语上册Unit 2 达标检测卷+答案.doc
- 重庆市第一中学校2024-2025学年九年级上学期期初检测数学试题(解析版).docx VIP
- 2022-2023学年合肥市庐阳区寿春中学九年级上学期期中数学试卷(含答案解析).docx
- 国家开放大学《西方行政学说》章节测试参考答案.pdf
- 保安人员基本信息登记表.docx
- ExponentialandLogarithmicFunctions.ppt
- 17松鼠(任务二) 大单元公开课课件 部编版五年级语文上册.ppt
文档评论(0)