hi,你好!欢迎访问本站!登录
本站由简数采集腾讯云宝塔系统阿里云强势驱动
当前位置:首页 - 教程 - 杂谈 - 正文 君子好学,自强不息!

怎样向贞洁的女朋友诠释并发与并行的区分?

2019-11-18杂谈搜奇网37°c
A+ A-

原文链接:并发与并行的区分

如今我们都说设想可并行、高并发的顺序,而且我们许多时候会在潜意识里以为本身对并行(Parallelism)和并发(Concurrency)的区分很清楚,但假如要明白的说出两者的区分,又觉得没办法给出一个异常清楚的形貌。

那末什么是并发?什么又是并行呢?并行的观点比较简朴,并行老是和实行(executions)相干,许多东西同时实行就是并行;而并发则是经由过程一些体式格局构造你的顺序,让它能够分红多个模块去自力的实行。并行必定是须要多核的,一个处置惩罚器是没法并行的;但并发和处置惩罚器并没有什么必定联系,在一个处置惩罚器上面,我们的顺序也能够是并发的。

举个简朴的例子,华罗庚沏茶,必须有烧水、洗杯子、拿茶叶等步骤。如今我们想尽快做完这件事,也就是“一共要处置惩罚许多事变”,有许多要领能够完成并发,比方请多个人同时做,这就是并行。并行是完成并发的一种体式格局,但不是唯一的体式格局。我们一个人也能够完成并发,比方先烧水、然后不必等水烧开就去洗杯子,所以经由过程调解顺序运转体式格局也能够完成并发。

假如你以为以上的解说照样太笼统了,下面经由过程一个小故事来解说,故事原型来自 Go 言语创始人之一 Rob Pike 的一篇演讲。

故事的最先有一个需求:有一群地鼠要把一堆销毁的申明书用小推车推到火炉去销毁。

刚最先只要一只地鼠,运用一辆推车,将书装到车上,运输到火炉旁,将书卸到火炉。完成使命必定须要比较长的时候。

此时假如再增添一只地鼠,那也没什么用,由于一只地鼠在干活,另一只地鼠只能守候。(固然有人说两只地鼠轮番运用一辆推车,如许能够让地鼠获得歇息,如许它们干活更快,也能够进步效力。)

再找一辆推车来,两只地鼠离别运用各自的推车,将书装到车上,运输到火炉旁,将书卸到火炉。如许会进步运输效力,但它们会在装书和卸书时举行列队,降低了效力。

如许虽然比之前快了,但照样有瓶颈的。由于书只要一堆,火炉也只要一个,所以我们还必须经由过程音讯来谐和两只地鼠的行为。好吧,那我们再把书分红两堆,再增添一个火炉。

如许就比之前的效力高差不多一倍了。如今这个模子就是并发的,由于两只地鼠能够自力完成一件事了,如许进步了运输效力,而且在装书和卸书时不会举行列队,进步了装卸的效力。但这个模子不一定是并行的,比方统一时候能够只要一只地鼠在干活。

上面就是第一种并发模子,我们还能够设想更多的并发模子,继承看漫画。

此次找了 3 只地鼠,一只担任把书装到车上,一只担任运输,一只担任把书卸到火炉燃烧。每只地鼠做一个自力的使命,固然三只地鼠之间须要运用一些诸如音讯通讯之类的手腕举行谐和。

装书和烧书的两只地鼠都很轻松,担任运输的这只地鼠却很累,体系涌现了瓶颈。那我们再找一只地鼠来,特地担任运回空推车。

我们在一个已有的设想(指三个地鼠的谁人设想)中增加一个并发的步骤(第四只地鼠)增强了体系的机能。如许一来,两只地鼠去搞运输,假如谐和的好,理论情况下工作效力将是一只地鼠的 4 倍。

统共有 4 个并发的步骤:

  1. 把书装到车上;
  2. 把推车运到火炉旁;
  3. 把书卸到火炉里;
  4. 运回空推车。

能够再增添一个分组,将这个并发模子并行化。

下面我们再来看别的一种并发模子。担任运输的地鼠埋怨说运输旅程太长,那我们就增添一个中转站。

然后再增添一个分组,将这个并发模子并行化,两个分组并行实行。

能够把上面的并发模子再革新一下。增添中转站的同时,再增添两只地鼠,一只担任将从书堆运过来的书卸到中转站,另一只担任将书从中转站装到推车里,再让背面的地鼠运输到火炉旁。

然后再增添一个分组,将这个并发模子并行化。

漫画到这里就完毕了,统共引见了三种并发模子,每种模子都能够很容易地并行化。能够看到上面的并发模子每革新一次,实在就是将使命拆的更细了,一旦分解了问题,并发就自然而然产生了,每个人只专注于一个使命。

回到顺序中,书就代表着数据,地鼠就是 CPU,而车能够就是序列化、反序列化、收集等设备,火炉就是代办、浏览器或其他的消费者。而上面的并发模子就是一个可扩大的 Web Service。

该演讲问题为《Concurrency is not Parallelism》,原文链接:

  • 演讲幻灯片:https://talks.golang.org/2012/waza.slide
  • 演讲视频:https://www.youtube.com/watch?v=cN_DpYBzKso&t=550s

参考链接

  • https://my.oschina.net/3233123/blog/1047239
  • https://blog.csdn.net/claram/article/details/52094587

微信民众号

扫一扫下面的二维码关注微信民众号,在民众号中复兴◉加群◉即可到场我们的云原生交换群,和孙嘹亮、张馆长、阳明等大佬一同讨论云原生手艺

  选择打赏方式
微信赞助

打赏

QQ钱包

打赏

支付宝赞助

打赏

  移步手机端
怎样向贞洁的女朋友诠释并发与并行的区分?

1、打开你手机的二维码扫描APP
2、扫描左则的二维码
3、点击扫描获得的网址
4、可以在手机端阅读此文章
未定义标签

本文来源:搜奇网

本文地址:https://www.sou7.cn/282385.html

关注我们:微信搜索“搜奇网”添加我为好友

版权声明: 本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。请记住本站网址https://www.sou7.cn/搜奇网。

发表评论

选填

必填

必填

选填

请拖动滑块解锁
>>