温故之.NET 中的并行并发概念解析

这篇文章主要讲解并行与并发的概念,以及它们之间的区别与联系

为了说明白并行与并发的区别,我们举了两个例子。我们先看一个例子:一个人干活和多个人干活

例子一:包子铺

并发

假设我们开了一家包子铺,生意特别好,早上的时候人特别多。最开始这个店铺(如同我们的电脑)只有我们一个人打理(一个处理器)。因此,来购买早餐(电脑有任务需要处理)的人都需要排队。就算这样,我们一个小时之内,还是可以卖很多份早餐出去(即在一段时间之内,单个处理器可以处理很多任务)。

这便是并发,它指的是,在一段时间内(注意是一段时间,而不是某个时间点),可处理的任务的数量,它不关注某一个时间点做了多少事情。比如QPS,它指的是一个查询服务器在每秒内能处理的请求数量。这和前面一个小时内卖多少份早餐是一样的

并行

与并发不同,并行指的是,在某个时间点,能处理的任务数量,即它重心在于每个时间点能处理的任务量(或者说处理任务的速度),而不关心一小时内或一分钟内处理的任务量。

比如,随着生意越来越好,人越来越多,一个人根本就忙不过来,所以我们请了三个帮手,加上我们自己,就有四个人可以同时卖早餐了。
假设我们之前一个小时内一个人可以卖 200 个包子,现在有四个人,是不是在一个小时内,差不多就能卖 800 个包子了。
因为在这一个小时内的每一个时间点,差不多都可以卖 4 份早餐出去(之前因为只有一个人,一个时间点只能卖一份)。
这就好比我们的电脑有四个处理器,在同一个时间点,可以处理的任务数量是 4 个。因此,在一秒内,并发量理论上就可以达到之前单个处理的四倍了

例子二:微信运动

微信运动,可以记录我们每天走的步数(可以认为我们每走一步,就是做一个任务)。

假设我们有一个微信运动群(一个电脑)

如果这个群里面只有一个人(一个处理器),那么这个群这一天的步数就是这个人的。即此时群的步数(并发量)由这一个人决定(电脑的并发量由这一个处理器决定)

如果这个群有10个人(10个处理器),那么这个群一天的步数就是这10个人这一天的步数之和了。即并发量由这10个处理器决定

这10个人,各自走着各自的路,而互不影响(并行),但却决定着这一天的步数(并发量)

总结一下

例子归例子,例子只是为了方便我们更好的理解并发、并行的概念,以及它们之间的联系。但实际项目、正式发布的环境中,并发量与并行速度还取决于任务之间的相关性(如线程间数据共享)、磁盘 I/O,网络带宽等等

因此,需要注意以下这些地方

  • 这两个概念表述的重点是不同的。并发指的是一个时间段内能做的事情的数量;并行指的是某一个时间点能处理的事情的数量
  • 并行会影响并发,但并发不仅仅由并行来决定。还有磁盘 I/O,网络带宽等等
  • 一个参与者(即一个处理器),也可以有并发,但却不会有并行。并行需要有至少两个参与者(即两个处理器)



既然这篇文章我们讲的是 .NET 中的并行并发,那自然就会说到任务并行库(TPL)、并行 LINQ (PLINQ)。其中TPL 包含数据并行、任务并行、数据流等概念

任务并行,以任务为基础,来实现多个独立任务的同时运行。这样可以充分的利用系统资源,同时可以更加方便的管理并行中的任务(因为对 Task 我们可以有非常精细的控制)

TPL 在多处理器上具有很明显的性能优势,处理器越多越明显。然而在处理器比较少(比如只有一个)的时候,性能可能反而会有所下降。因此在选择的时候,我们需要根据目标环境(部署的环境)进行权衡

关于.NET 中的并行并发就简要说一下,这篇文章主要以理解并行并发为主。希望我们能够通过这两个例子加深对这两个概念的理解



至此,这篇文章的内容讲解完毕。欢迎关注公众号【嘿嘿的学习日记】,所有的文章,都会在公众号首发,Thank you~

公众号二维码
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,919评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,567评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,316评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,294评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,318评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,245评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,120评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,964评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,376评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,592评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,764评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,460评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,070评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,697评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,846评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,819评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,665评论 2 354

推荐阅读更多精彩内容