快捷搜索:  汽车  科技

并发与并行的区别与联系(并发)

并发与并行的区别与联系(并发)再回到厨房的例子里去,现在我们有两个厨师,一个负责照看烤箱,而另一个专职切生菜,这样我们通过多加一个厨师的方式来分拆任务。并行图例并发就是在同一个时间间隔里执行多个任务。这里的重点是:任务并没有必要在同一时间里执行。这些任务可以被分解成多个小的任务,然后穿插在一起执行。并发图例厨房是并发发生的一个好的地方。想象一下,一个厨师在厨房里又是切生菜又要时不时的检查烤箱里的东西。他必须停止切菜,然后检查烤箱,然后停止检查烤箱,才能去切菜,重复这几个过程,直到事情都做完。

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)

并发图例

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

并行图例

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

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

猜您喜欢: