并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能只有一道程序在执行,故微观上这些程序只能时分时交替执行。
是进程之间直接的制约关系,是为完成某种任务而建立的两个或多个线程,这个线程需要在某些位置上协调他们的工作次序而等待、传递信息所产生的制约关系。进程间的直接制约关系来源于他们之间的合作。
比如说进程A需要从缓冲区读取进程B产生的信息,当缓冲区为空时,进程A因为读取不到信息而被阻塞
不对,并发和并行是不同的,并发是指宏观上并行,其实不是并行,例如,多进程其实是将所有进程按时间分为一个一个的时间片,每一个时刻只执行该运行的片,时间片过期后转而执行下一个进程的时间片
如下图:
|
|~~~__~~~~~__~~~~~~~~~~~~~~~~ 进程A
|
|__~~~~~~__~~~~~~~~~~~~~~~~~~ 进程B
|
|~~~~~__~~~~~~~__~~~~~~~~~~~~ 进程C
|
|______________________________时间轴
~~~~~部分是指此时没有在运行的进程
__部分是指占用CPU运行的进程时间片
从上图可以看出,进程B首先运行,然后当B运行结束后(时间片到)转到A,然后转到C
不过由于时间片很短,所以看起来是并行处理的,其实不是,所以叫并发,而不是并行。
其实每一个时间只运行一个进程的一片而已。
并行是如你所说的,多个程序同时运行(不过一个处理机不知道能不能支持多个进程,一般服务器采用多个处理机处理多个进程)
顺序程序设计:
程序顺序执行是指其在处理器上的执行是严格有序的,即只有在前一个操作结束后才能开始后续操作。如果有多个程序,这些程序必须按照调用次序严格有序执行。而且这些程序如果中断,这是允许的,但不停止,中断不会对程序最终造成影响,也就是说程序执行结果与执行速度无关。
举例:
按顺序从上往下求解过程鸡兔同笼程序中第七行给变量赋初值,第八行求鸡的只数,第九行求兔子的只数,最后输出;
并发程序设计:
程序的执行不再是顺序的,一个程序为执行完而另一个程序便以开始执行,程序外部的顺序性消失,程序与计算不再一一对应。一组程序的执行在时间上是重叠的。
举例:学生在挂网络课的过程中,可以一边挂课一边完成操作系统的作业,两者互不干扰
声明: 我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理,本站部分文字与图片资源来自于网络,转载是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请立即通知我们(管理员邮箱:daokedao3713@qq.com),情况属实,我们会第一时间予以删除,并同时向您表示歉意,谢谢!
本站内容仅供参考,不作为诊断及医疗依据,如有医疗需求,请务必前往正规医院就诊
祝由网所有文章及资料均为作者提供或网友推荐收集整理而来,仅供爱好者学习和研究使用,版权归原作者所有。
如本站内容有侵犯您的合法权益,请和我们取得联系,我们将立即改正或删除。
Copyright © 2022-2023 祝由师网 版权所有
邮箱:daokedao3713@qq.com