并发和并行的区别
Posted 向骄阳
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了并发和并行的区别相关的知识,希望对你有一定的参考价值。
总揽
我们在面试的时候,经常会遇到这样一个问题:并发和并行有什么区别?
要想回答出这个问题,你首先必须知道,什么是并发?什么是并行?就像回答先有鸡还是先有蛋这个问题之前,你必须认识鸡和蛋。
我们在进入正题之前,先了解一下计算机的发展史。
最开始的计算机只有一个处理器,也就是单核,最开始处理任务的模式也是只能处理一个任务,但是这种就比较傻瓜式,比如你在看视频时,就不能同时登微信聊天,简直离谱。
后来就想着我们是否可以给任务分配一个时间片,时间到了就切换另外一个任务,由于时间片很短,用户的眼睛几乎感觉不到停顿,可以给用户一种“任务并行起来了”的假象。这种交替执行不同任务的方式就是并发。
后来计算机随着发展,就有了多核处理器,每个核都可以处理一个任务,并且这两个任务之间不需要抢夺时间片,这种方式就是并行。
紧接着我们分别了解一下并行和并发和概念。
1、并行
并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行,所以无论从微观还是从宏观来看,二者都是一起执行的。
2、并发
并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行。
我们分别认识了并发和并行之后,就回到了最初的问题:并发和并行的区别是什么?
3、异同点
相同点:
并发和并行的目标都是最大化CPU的使用率,将cpu的性能充分压榨出来。
不同点:
(1)并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在
(2)并行要求程序能够同时执行多个操作,而并发只是要求程序“看着像是”同时执行多个操作,其实是交替执行。
以上是关于并发和并行的区别的主要内容,如果未能解决你的问题,请参考以下文章