并发、并行

并发、并行:CPU执行多个任务的方式。

在Windows操作系统中,我们可以一边聊QQ,一边听歌,一边打游戏。看似“同时”在做很多事儿。但这所谓的"同时",在操作系统底层可能并不是真正的意义上的"同时"。

为什么给人一种好像“同时执行”的感觉?

解释:

对于单CPU的计算机来说,在CPU中,同一时间是只能干一件事。为了看起来像是“同时干多件事”,Windows这种操作系统是把CPU的时间划分成长短基本相同的时间区间,即”时间片”,通过操作系统的管理,把这些时间片依次轮流地分配给各个应用使用。带给用户的感觉是他在同时的进行听歌和打游戏,实际上,在操作系统中,CPU是在游戏进程和音乐播放器进程之间来回切换执行的。

操作系统时间片分时调度:某个作业在时间片结束之前,整个任务还没有完成,那么该作业就被暂停下来,放弃CPU,等待下一轮循环再继续做。此时CPU又分配给另一个作业去使用。

由于计算机的处理速度很快,只要时间片的间隔取得适当,那么一个用户作业从用完分配给它的一个时间片到获得下一个CPU时间片,中间有所”停顿”,但用户察觉不出来。所以,在单CPU的计算机中,看起来“同时干多件事”,其实是通过CPU时间片技术,并发完成的。

一个形象的例子:
把目光聚焦在CPU的执行上,如果把这个过程放大的话,CPU就好像是一个电话亭。多个用户并不是同一时间在使用这个电话亭中的电话的,而是轮流使用的。

并发(Concurrent)

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

同一时间段内,打游戏和听音乐在是在同一台电脑上完成了从开始到结束的动作。那么,就可以说听音乐和打游戏是并发的。

图示:

   并发,一台咖啡机,两个等待队列

并行  ( Parallel )

若系统有一个以上CPU时,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行。

注意:系统要有多个CPU才会出现并行。在有多个CPU的情况下,才会出现真正意义上的同时进行

图示:

       并行,两台咖啡机,两个等待队列

一个简单的例子

甲、乙两人在吃米饭,对于甲、乙个人来说,在吃饭的整个过程中,一会吃米饭、一会吃蔬菜、一会吃肉。吃米饭、吃蔬菜、吃肉这三件事其实是并发执行的。对于甲、乙个人来说,整个过程中看似是同时完成的。其实是在吃不同的东西之间来回切换的。

甲、乙两人在吃米饭,在吃饭过程中,甲吃了米饭、蔬菜、肉。乙也吃了米饭、蔬菜和肉。甲、乙两人之间的吃饭就是并行的。两个人之间可以在同一时间点一起吃牛肉,或者一个吃牛肉,一个吃蔬菜。他们之间是互不影响的。

区别:

并发:指在一段时间内宏观上多个程序同时运行。(一个人”同时”做多件事情)
并行:指的是同一个时刻,多个任务确实真的在同时运行。(多个人“同时”做多件事情)

并发:指的是多个事情,在同一时间段内同时发生了。  
并行:指的是多个事情,在同一时间点上同时发生了。

并发:多个任务之间是互相抢占资源的。  
并行:多个任务之间是不互相抢占资源的。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值