`

并发程序设计

 
阅读更多
并发程序设计

1.顺序程序设计
  顺序程序设计(sequential programming)方法是指,程序模块按语句次序顺序执行,具有如下特性:
    执行的顺序性。
    环境的封闭性。
    执行结果的确定性。
    计算结果的可再现性。

2.并发程序设计
   并发程序设计(concurrent programming)方法是指,将一个程序分成若干可同时执行的程序模块,每个程序模块和它执行时所处理的数据就组成一个进程。具有如下特性:
    并发性——进程的执行在时间上可以重叠,在单处理器系统中可以并发执行;在多处理器系统中可以并行执行。
    共享性——进程可以共享变量,通过引用共享变量就能互相交换信号,程序的运行环境不再是封闭的。
    制约性——进程并发执行或协作完成同一个任务时,会产生相互制约关系,必须对它们并发执行的次序和相对执行速率加以协调。
    交互性——由于进程可共享变量,一个程序的执行可能影响其他程序的执行结果,因此这种交互必须是有控制的,否则会出现不正确的结果。即使程序自身能正确运行,由于程序的运行环境不再是封闭的,程序结果仍可能是不确定的计算过程具有不可再现性。

   采用并发程序设计的目的是:充分发挥硬件的并行性,消除处理器I/O设备的互等现象,提高系统效率。硬件能并行工作仅仅有了提高效率的可能性,而硬件并行工作的实现还需要软件技术去利用和发挥,这种软件技术就是并发程序设计。在程序设计语言、数据库管理系统和其他一些应用软件中,通过引入线程来改善系统和应用程序的性能。
    并发多线程程序设计是指,在一个进程中包含多个并行执行的控制流。其主要优点是使系统性能获得很大提高,具体表现为快速切换线程、减少系统管理开销、线程通信易于实现、并发程度提高、节省内存空间等。
    
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics