理解并发进程

一、顺序程序设计:

顺序程序设计具有四种特性:(1)执行的顺序性(2)环境的封闭性(3)结果的确定性(4)过程的可再现性。程序顺序执行与其速度无关,即程序的最终输出仅与初始输入数据有关,而与时间无关。

二、并发程序设计:

并发进程的特性:并发进程可能是无关的,也可能是交互的。无关的并发进程是指它们分别在不同的变量集合上的操作,一个进程的执行与其他并发进程的进展无关,即一个进程不会改变另一个与其并发执行的进程的变量。然而,交互的并发进程共享某些变量,一个进程的执行可能会影响其他进程的执行结果,交互的并发进程之间具有制约关系。因此,进程的交互必须是有控制的,否则会出现不正确的计算结果。

例子:

并发程序设计:

在一个单处理器系统中,从磁盘读入数据经加工后打印输出,不采用并发程序设计时,解决这个问题的程序是循环地执行读入一批数据,然后,加工打印输出。执行这个程序时,磁盘机、处理器和打印机顺序执行输入、加工和输出操作。虽然计算机的外围设备和处理器可以并行操作,但执行上述程序时它们只能串行工作。如果采用并发程序设计,解决上述问题的程序由以下两个进程组成。①读盘进程:循环地执行读入一批数据,加工后送入输出缓冲区;②打印进程:循环地执行从缓冲区取出数据打印输出。在打印进程执行打印输出时只需要打印机,而不需要磁盘机和处理器。因此,在打印进程启动打印机后,在打印机输出的过程中可以启动读盘进程输入和加工数据。执行这个程序时,处理器、磁盘机和打印机并行工作,能缩短程序执行的时间,提高计算机系统的效率。

顺序程序设计:

a = 3,b = 5,现交换a,b的值,这个问题就好像交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。 顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三部曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。

posted on 2019-04-18 18:55  XHM丶  阅读(923)  评论(0编辑  收藏  举报

导航