并行和并发有什么区别

1,484 阅读2分钟

并行和并发有什么区别

例子1

你吃饭吃到一半,电话来了,你一直到吃完了以后才去接,这就说明你不支持并发也不支持并行。
你吃饭吃到一半,电话来了,你停了下来接了电话,接完后继续吃饭,这说明你支持并发(不一定是同时的)。
你吃饭吃到一半,电话来了,你一边打电话一边吃饭,这说明你支持并行[(转自:blog.csdn.net/u010214802/…)]

例子2 并发指在一台CPU上“同时”(也就是快速切换)处理多个任务。 并行指在多台CPU上同时处理多个任务(好比hadoop分布式集群)

描述

并发:指应用能够交替执行不同的任务,其实并发有点类似于多线程的原理,多线程并非是同时执行多个任务而是快速切换着执行。如果你开两个线程执行,就是在你几乎不可能察觉到的速度不断去切换这两个任务,已达到“同时执行效果”,其实并不是“同时”,只是计算机的速度太快,我们无法察觉到而已。 例如,你吃一口饭、喝一口水、再吃一口饭、再喝一口水,以正常速度来看,完全能够看的出来,当你把这个过程以n倍速度执行时…可以想象一下是不是就是一直在喝水和吃饭了。 并行:指应用能够同时执行不同的任务 例如,吃饭的时候可以边吃饭边听音乐,这两件事情就可以同时执行。

总结

并发的关键是你有处理多个任务的能力,但不是同时。 并行的关键是你在同时处理多个任务。 它们最关键的点就是:是否是同时。 两者区别:并发是交替执行,并行是同时执行。