浅析网络程序设计中的并发复杂性.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
浅析网络程序设计中的并发复杂性.doc

浅析网络程序设计中的并发复杂性   摘要:随着近年来科学技术的不断发展,互联网技术成为现代社会不可缺少的基础设施。随着网络人数的增加,并发问题也随之出现,使其成为网络发展的一个重大阻碍,如果这一问题得不到解决,网络开发将停滞不前。本文将介绍一些解决并发问题的模型。   关键词:并发;复杂性   中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)14-0223-02   近些年,由于信息技术的高速发展,网络应用已经广泛。由于网络自身的特点,决定了网络环境的分布性,异构性,异步性,并发性及访问延误等问题,汇结到一起,就很难解决。这样对高质量的网络程序开发方面,使用传统的程序设计方法使网络开发便会碰到很多难题,尤其是并发程序的处理。并发性是造成网络程序设计复杂性的最主要因素。因此,并发性问题是目前网络程序设计中的瓶颈问题,这一问题能否的到有效的解决将成为动态网站开发中的关键性问题。   1 网络程序设计的并发复杂性   并发,即一齐发生。即像在单核处理器上的单程序是一样的。也就是说程序在运行过程中处理器只能同时做一件事,不能同时做两件或多件事情。并发的根源在于操作系统,动态网络程序开发过程中所涉及的并发性问题与操作系统所涉及的并发性问题基本上是一致的,其解决方法大相径庭。近些年来很多学者都在探讨和研究,如何来解决程序的并发性问题,也下足了功夫、耗费了相当大的人力和物力以及时间,也没有得到有效彻底的解决。在研究中也得出了一些能够降低并发所造成的错误性问题,但没有从根本上解决这一问题。在研究过程中所得到的一些模型驱动以及多线程模型,这两种模型各有优缺点,在不同的开发环境下也对程序造成不同的作用,所以这两种模型在不同的程序设计中的作用也是不同的,在优越性上无法比较谁更优秀。在模型的选择上,要根据存在的实质性问题选择合适的模型来进行相应的程序设计,但是在现在的开发过程中许多人都是将两者混合使用以满足现有的设计需求。   2 程序设计的驱动并发模型   现在社会上所使用的计算机结构上仍然是冯诺依曼计算机结构模型而设计的,冯诺依曼计算机结构模型有很多种,常见的只有两种。一种是基于事件的驱动并发模型,另一种是基于数据流驱动的计算机模型。二者的原理相似。基于事件的驱动并发模型是现在网络程序设计中应用最为广泛。工作时按照操作分配为两种不同的模式进行工作,从而大大提高了计算机在面多多程序并发下的数据安全性和一致性。这两种模式分别是反应式和前摄式。反应式模型也叫做非阻塞模型,前摄式模型也称为异步模型。这两种事件模型也十分相似,也可以相互转化,具体使用过程中存在相同的问题,在方法的复杂性上也类似。前者的工作原理是在数据满足条件后运行操作,后者的原理是在操作等待时完成。   基于事件的驱动并发模型中,有一很重要的组成是事件分配器,该模式就是通过事件分配器来处理事件,并对其维护状态以及函数运行时间进行处理。同时函数之间的通信问题是依靠事件完成的。事件的维护则由分配器管理完成。这一过程中待函数完成特定操作后一定要交出其控制权给事件分配器,由事件分配器来进行接下来的处理和维护工作,以达到合理的分配工作。当然,在此过程中时间内,未完成的操作可以继续进行,这一操作并不存在数据丢失,可让计算机更加完美的操作数据,这就形成了控制权的反转机制。所以说,基于事件的驱动并发模型在进行任务处理时,事件分配器非常重要,在工作过程中必须对函数进行拆分,以达到操作系统的最优化。事件在处理器的拆分过程中会导致大量的函数分裂问题,这些函数分裂会造成网络程序出现故障。增加了函数调度难度,还会造成内存泄露或程序中断。事件的驱动并发模型在调用时基于时间驱动的函数来完成的。所以事件驱动函数在工作时就要进行大量的函数分裂,来完成函数并发模型的调用工作,在此过程中会出现许多问题,有的使得函数的内部细节部分暴露出来,从而降低函数事件的安全性,从而函数的稳定性也随之降低,因此函数事件的驱动并发模型模板的复用性也就有所降低。   3 多线程程序的并发模型   多线程并发模型在线程处理方面更加灵活。对线程的调用可以分为两种一种是抢占式,一种是协作式。有些计算机系统内核对线程进行调度的管理模式属于抢占式,有些计算机内核进行调度时则是协作式。抢占式多线程操作不会受到应用程序控制,而协作式多线程操作主要是用应用层协作方式进行运行多任务线程。由于这两种线程的调度方法不同 ,致使二者表现出来的特征以及衍生的问题也存在明显的差异,因此在工作中导致计算机操作系统的运行效果也大不相同。所以在计算机选在并发模型是要根据具体的情况来进行择优选择,以达到具体的要求效果。在抢占式调度中,CPU的控制权受到调度器的控制,调度器对前面程序的执行具有十分明显的了解。这时调度器对程

文档评论(0)

lmother_lt + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档