并发和并行一样吗(并发)

https://monades.roperzh.com/concurrency-is-different-than-parallelism/?utm_source=wanqu.co&utm_campaign=Wanqu Daily&utm_medium=website

我很喜欢听Carl Hewitt谈论计算机,有一句话他经常挂在嘴边“并发不是并行”。对我来说,他们并没有本质区别,老实说,我也从来没有费心想去深挖他们的区别。

上周,我苦于不理解Rob Pike的关于这个话题的演讲,就去花时间研究了这个东西,以下是我的一些发现。

注意:就跟生活中的大部分其他事情一样,很多人都认为并发和并行之间并没有本质的区别。

并发:

并发就是在同一个时间间隔里执行多个任务。这里的重点是:任务并没有必要在同一时间里执行。这些任务可以被分解成多个小的任务,然后穿插在一起执行。

并发和并行一样吗(并发)(1)

并发图例

厨房是并发发生的一个好的地方。想象一下,一个厨师在厨房里又是切生菜又要时不时的检查烤箱里的东西。他必须停止切菜,然后检查烤箱,然后停止检查烤箱,才能去切菜,重复这几个过程,直到事情都做完。

并行图例

再回到厨房的例子里去,现在我们有两个厨师,一个负责照看烤箱,而另一个专职切生菜,这样我们通过多加一个厨师的方式来分拆任务。

并行是并发的子集,在你想要同时执行多个任务之前,你必须要管理这些任务。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页