并发与并行
引言:对这个知识点感兴趣,在网上也看到了许多资料,自己的理解也整理了一下。
一、区别
并发是指一个处理器同时处理多个任务。
并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。
并发是逻辑上的同时发生(其实从物理上并不是,因CPU运行速度极快,而且进程快速交替的执行,相对于人来说毫无感觉,从人为的感觉上是同时发生),而并行是物理上的同时发生。
来个比喻:并发是一个人同时吃三个馒头,而并行是三个人同时吃三个馒头。
二、例子
并发:我本来用俩小时完成的作业,我用了10分钟去写了会作业,然后又去刷了会抖音,然后感觉口渴又喝了口水,感觉爽够了,又去做作业,当然因为意志力比较薄弱,所以说不可能老去写作业,这期间又会干些其他事情,CPU就是这样处理多个任务,再不断的切换,而CPU运行速度极快,对于人的感观来说是同时运行的,再举个例子:比如玩王者荣耀,我点了个技能,敌人也点了个技能,虽然人为看到的是同时发出的,但是在系统中,CPU在这俩个技能不断的快速跳转,最后在人为上是同一时间执行完毕的
并行:这就不是一个人了,而是不同人在工作,就如冬天去水房打热水,每个人拿不同数量的壶去打热水,也正对应的不同水管出热水。这也就是多个CPU处理任务
三、图解
四、小结
并行在多处理器系统中存在,而并发可以在单处理器和多处理器系统中都存在,并发能够在单处理器系统中存在是因为并发是并行的假象,并行要求程序能够同时执行多个操作,而并发只是要求程序假装同时执行多个操作(每个小时间片执行一个操作,多个操作快速切换执行)。