并行与并发的区别

  为了提高系统的运行效率,允许“同时”执行多个程序—程序的执行不再是顺序的,而是一个程序未执行完另一个程序便开始执行,内存中同时载人多个相对独立的程序代码,复用/争用CPU、句柄、外设等软硬件资源,这就引出了并发的概念.

  并发(concurrent)和并行(parallel)是两个相似但又有区别的概念。并行是指多个事件在同一时刻发生,而并发是指多个事件在同一时间段发生。在多道程序环境下,并发性是指在一段时间内系统中宏观上有多个程序在运行,但是在单CPU系统中,同一时刻却只能有一个程序在运行,故微观上这些程序是交替执行的(多采用时间片轮转算法)。如果计算机中有多个CPU,那么这些程序将会被分配到多个CPU上执行,实现并行执行即利用每个CPU来执行可并发执行的程序,这样多个程序便可以同时执行。

  并发的本质是一个CPU在多个程序运行过程中的时分复用,并发对有限的系统资源实现多用户共享,消除计算机软硬件之间的互相等待现象,以提高系统资源利用率。对于多CPU系统,可让各程序在不同CPU上并行执行,以加快计算速度.并发还可以简化程序设计任务—一个较大较复杂的程序可以被分成几个能够同时运行的小程序,每个小程序的逻辑可获得一定的简化。

  并发执行主要有以下三个特点:

  1. 间断性:程序不再一条指令执行完接着执行下一条指令且直到程序逻辑结束才能载人执行另一个程序,此时系统中载入了多个程序,各程序的运行流程可能是“运行~暂停一继续一……”这样的模式。
  2. 开放/交互性:由于系统中载入了多个程序,存在资源共享/争用的情况,因此多个程序运行时可能会相互影响。
  3. 不可再现性:上述原因会造成程序在不同的情况下运行可能会出现不同的结果,甚至会造成错误。

   因此在进行并发程序设计时应当避免由于程序间开放交互引起的不可再现性而产生运行错误。下面给出并发运行时的模拟图:


        并行运行时的模拟图如下:




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值