并发和并行一样吗(并发)
https://monades.roperzh.com/concurrency-is-different-than-parallelism/?utm_source=wanqu.co&utm_campaign=Wanqu Daily&utm_medium=website
我很喜欢听Carl Hewitt谈论计算机,有一句话他经常挂在嘴边“并发不是并行”。对我来说,他们并没有本质区别,老实说,我也从来没有费心想去深挖他们的区别。
上周,我苦于不理解Rob Pike的关于这个话题的演讲,就去花时间研究了这个东西,以下是我的一些发现。
注意:就跟生活中的大部分其他事情一样,很多人都认为并发和并行之间并没有本质的区别。
并发:并发就是在同一个时间间隔里执行多个任务。这里的重点是:任务并没有必要在同一时间里执行。这些任务可以被分解成多个小的任务,然后穿插在一起执行。
并发图例
厨房是并发发生的一个好的地方。想象一下,一个厨师在厨房里又是切生菜又要时不时的检查烤箱里的东西。他必须停止切菜,然后检查烤箱,然后停止检查烤箱,才能去切菜,重复这几个过程,直到事情都做完。
并行图例
再回到厨房的例子里去,现在我们有两个厨师,一个负责照看烤箱,而另一个专职切生菜,这样我们通过多加一个厨师的方式来分拆任务。
并行是并发的子集,在你想要同时执行多个任务之前,你必须要管理这些任务。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com