纠错--并发和并行的区别

并行性和并发性是既相似又有区别的两个概念,再开始分析之前,我们先给出并发和并行的概念。

并行是指两个或多个事件在同一时刻发生。

并发是指两个或多个事件在同一时间间隔内发生。

​ 大家看到的图一般如下所示:
原本大家理解的并发

并行

上述是博主看到的并发和并行的理解,其实我之前也一直是这么认为的,一直到我写了上一篇博客,从操作系统的发展过程对进程和线程进行了分析,才觉得并发的概念似乎并不是这样的,因此这篇博客是一篇纠错博客,如果理解的有误,还请大家一起进行讨论。首先指出我认为的错误,并发并不是指同一时刻只能有一条指令执行,造成这个困扰的原因是在单核CPU的操作系统中,每一时刻仅能有一道程序执行,故微观上这些程序只能分时的交替执行,此时情况如下图:
单CPU操作系统下的并发

在上图中,事件A、B、C、D、E、F、G在单核CPU的操作系统中依次的执行,这也是我们之前理解的并发。但是在多核CPU的操作系统中,这些并发的程序便可被分配到多个处理机上,实现真正意义上的并行(这里可以参考我的另一篇博文),即利用每个处理机来处理一个可并发执行的程序,这样多个程序便可以同时执行,图示如下所示:
多CPU操作系统中的并发

在上图中,事件A、B,事件G、F在多核CPU操作系统中可以做到真正的并行执行。因此在多CPU的环境下,并发的程序有可能会转为并行,但是需要多个程序可以同时能抢占到处理机(这部分是处理机调度问题,大家有兴趣可以关注我的博客,后续后讲到)。

​因此并发和并行在关系上又有些变化,并发在一定条件下(多CPU操作系统)可以部分事件并行执行。上面这句话是博主自己总结的。

​现在我们在对并发和并行的两个概念来做一下解读。对于并行,大家应该没什么不同,而且概念也比较清晰。但是对于并发,概念上讲多个事件在同一时间间隔内发生,但是在这一个事件间隔内,没有约束部分事件不可同一时刻发生,即并行。

​博客到这里也就结束了,如果大家有什么疑问,可以评论留言,如果有不同意见,也可以留言讨论。原创不易,并且今天还是1024程序员节,如果对你有帮助,还请留下个赞。

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李子树_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值