通俗易懂地理解并发和并行的区别

前言

并发和并行的区别,相信很多初出茅庐的程序员都会被问到这个问题吧,这两个概念极容易混淆。今天,我们就来通俗地聊聊并发和并行的区别。

概念

通俗的讲解之前,先看一下并发和并行的概念吧。

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

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

并行

我们在玩电脑的时候,计算机可以“同时”运行着音乐软件和IDEA,我们可以边敲代码,边听音乐,计算机同时的在做多件事情。在单核cpu的计算机中,我们似乎也能“同时”做这些事情,但这不是真正意义上的并行,其底层是由于cpu快速切换执行任务,给我们一种同时运行的错觉而已。但是,当计算机是多核cpu的时候,当一个CPU执行一个进程时,另一个CPU可以执行另一个进程,两个进程互不抢占CPU资源,可以同时进行,这时候才是真正的“同时”进行,我们称之为并行。就好比,一个网吧,它有多台电脑可以同时满足多位客户的上网需求,这就是并行,同时进行,互不争抢。

并发

并发,指的是多个事情,在同一段时间段内发生了。 同样,我们可以拿网吧来举例子。例如,一个网吧每天晚上六点到晚上十点的用户量特别大,这时候可以称之为并发量大。假如该网吧有100个机子,但是晚上六点到晚上十点却有一百五十人来上网,这时候就有五十人无法正常上网,要么该五十人在此等待,要么就离开网吧。网吧处理这个一百五十人的上网请求,不是在同一时刻进行的,而是在一段时间内处理的。其实,这就是并发。

并发和并行的区别

总的来说,并发,指的是多个事情,在同一时间段内同时发生了;并行,指的是多个事情,在同一时间点上同时发生了。这两者都是处理多个事情,区别就是在于是否“同时”。也可以用下图很好的理解
图片来源与互联网,侵权删除

关注公众号领资料

搜索公众号【Happyjava】,回复【电子书】和【视频】,即可获取大量优质电子书和大数据、kafka、nginx、MySQL等视频资料
关注获取资料

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值