并发与并行的区别
并发(concurrency):
指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替地执行。
并行(parallelism):
指严格物理意义上的同时运行,比如多核cpu。同一时刻,有多条指令在多个处理器上同时执行,互不影响,无论从宏观还是微观来看,多个指令都是同时执行的。
相同点:
并发和并行的目标都是最大化CPU的使用率,将CPU的性能充分利用。
不同点:
(1)并行在多核处理器系统中存在,而并发在单处理器和多处理器中都可以存在;
(2)并行要求程序能够同时执行多个操作,而并发只是要求程序“看着像是”同时执行多个操作,其实是交替执行。