并行和并发的区别

2021-12-13  本文已影响0人  梁帆

首先要明确,这两者的英文名称也是不一样的。

一、并行(parallellism)

指在同一时刻,有多条指令在多个处理器上同时执行。
所以无论从微观还是从宏观来看,二者都是一起执行的。


并行

二、并发(concurrency)

指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。


并发

三、与处理器的关系

并行(parallellism)只在多处理器系统中存在。

在一个单核系统中,是没有办法做到真正的并行(parallelism)的;只要当一个系统是多核的情况下,当一个CPU执行线程1时,另一个线程可以执行线程2,两者之间才能真正互不抢占CPU资源。也才能做到真正的并行:parallelism。

并行(concurrency)可以在多处理器或者单处理器的系统中存在。

我们知道在单核的情况下,CPU是不可能真正同时执行一个以上的线程的,但是它可以把 CPU 运行时间划分成若干个时间段,再将时间段分配给各个线程执行。这样在一个时间段的线程代码运行时,其它线程处于挂起状态,在你的观察视角足够宏观的情况下,能达到多个线程同步并列执行的假象。这就是并发:concurrency。

上一篇下一篇

猜你喜欢

热点阅读