什么是并发(都9102年了)

精英怪
广告

眼看就要过年了,不少小伙伴安耐不住激动的心,悄悄去面试。某天面试官问:“简单说一下你理解的并发和并行,再说一下两者的关系”。如果你也对这两个知识点存有疑惑,来吧!看完今天的知识小课堂,让你恍然大悟,其实也就那么回事。

什么是并发(都9102年了)

并发: 又称伪并行, 表示多个任务同时发生。即在操作系统中某个时间段有多个程序处于启动运行到运行完毕的状态,这几个程序又在同一处理机上运行。就好比你打开电脑同时听歌、写论文,当然如果能一心多用,也可以再看个美剧,O(∩_∩)O哈哈~

并行: 多个任务同时进行,指当系统有一个以上CPU时,一个CPU执行一个进程,另一个CPU执行另一个进程,两者互不干涉,互不抢占资源,同时进行。举个栗子,小媛和男友去看电影,买了爆米花、薯片和炒山楂,我吃了爆米花、薯片、炒山楂,我男票也吃了,我们两个人吃东西就是并行的,我们在同一时间点吃零食,可能我在吃薯片,他在吃爆米花,但互不影响。

千万不要混淆并发和并行这两个概念,这可不是近义词,是两个很重要又很容易被问到的知识点,可能外行会说这有啥,不就是同时进行嘛!其实并不是,就好比四个兄弟一起吃饭,每个人表示一个任务,但是呢!吃饭用的筷子就只有一双,怎么办呢?四个兄弟轮流用这一双筷子。此时这四个人是一起吃的饭。这四个人就是并发的。为什么不是并行呢? 因为在一瞬间,只有一个人正在使用筷子吃饭,其他人得等着。但是从宏观上来看,四个人确实是一起在吃饭,这就是并发。想做到并行,很简单,四个兄弟一起吃饭,准备4双筷子,每个人都有独立的资源,这就是并行。你明白了吗?并发就是一个人同时做多件事,而并行则是多个人同时做多件事。

并发和并行最开始都是操作系统中的概念,表示CPU执行多个任务的方式。先看看百度百科给出的定义:

并发,在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

并行,“同时实行或实施”。在操作系统中指,一组程序按独立异步的速度执行,不等于时间上的重叠(同一个时刻发生)。一定要区别并发。并发指在同一个时间段内,两个或多个程序执行,有时间上的重叠宏观上是同时,微观上仍是顺序执行)。并行也指8位数据同时通过并行线进行传送,这样数据传送速度大大提高,但并行传送的线路长度受到限制,因为长度增加,干扰就会增加,数据也就容易出错。

总结

并发: 相对于单核而言的,只有在多核CPU才会存在并行。但是在单核CPU下, 只能是并发,大家共享一个CPU内核。多核CPU下,在同一瞬间,一个CPU里有多个核心在共同工作,这就是所谓的并行。

发表评论

快捷回复: 表情:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog
评论列表 (暂无评论,216人围观)

还没有评论,来说两句吧...