操作系统 并发VS并行

并发的英文是 Concurrency,并行的英文是 Parallelism,并发与并行是两个不同的概念。


并行是指在同一时刻,有多条指令在多个处理器上同时执行。

并发是指在同一时刻,只能有一条指令执行,但多个进程指令被快速轮换执行,使得在宏观上具有多个进程同时执行的效果。


有人做过比喻,要完成吃完三个馒头的任务,一个人可以这个馒头咬一口,那个馒头咬一口,这样交替进行,最后吃完三个馒头,这就是并发,因为在三个馒头上同时发生了吃的行为. 

三个馒头如果分给三个人吃,这样的任务完成形式叫并行.


并发性(Concurrence):指两个或两个以上的事件或活动在同一时间间隔内发生。
并发的实质是一个物理CPU(也可以多个物理CPU) 在若干道程序之间多路复用,并发性是对有限物理资源强制行使多用户共享以提高效率。

并行性(parallelism)指两个或两个以上事件或活动在同一时刻发生。
在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。

区别:一个处理器同时处理多个任务和多个处理器或者是多核的处理器同时处理多个不同的任务。
前者是逻辑上的同时发生(simultaneous),而后者是物理上的同时发生

操作系统 并发VS并行_第1张图片

操作系统 并发VS并行_第2张图片

两者的联系:
并行的事件或活动一定是并发的,但反之并发的事件或活动未必是并行的。
并行性是并发性的特例,而并发性是并行性的扩展。


打个比方。

并发,就像一个人(cpu)喂2个孩子(程序),轮换着每人喂一口,表面上两个孩子都在吃饭。

并行,就是2个人喂2个孩子,两个孩子也同时在吃饭。


你可能感兴趣的:(并发,操作系统,并行)