基于VC的(MFC函数库)多线程通信程序.docVIP

基于VC的(MFC函数库)多线程通信程序.doc

  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文档。上传文档
查看更多
【标题】?基于VC的(MFC函数库)多线程通信程序 【作者】张华 【关键词】?微软基础类库( MFC)??辅助线程(工作者线程)??用户界面线程 【指导老师】熊波 【专业】计算机科学与技术 【正文】 1.绪论 1.1??课题的提出背景 VC++6. 0 MFC类库的多线程通信程序对目前社会信息量的处理占有相当大的比例。在当今的信息社会中,信息是我们的生命,处理信息当然也就成为我们的灵魂。从而成为社会各界人士积极追求的研究目标。该软件在以后的发展对社会信息量的处理以及其他方面的影响具有相当大的重要意义。 在Windows应用程序开发时,有两种主要的方法:基于Windows API的开发方法和基于Windows MFC的开发方法,前者需要掌握近千个Windows?函数的方法,使用不方便,故已不独立使用了。后者借助于其应用程序向导及类向导的帮助,以其封装好的类、构造函数、响应函数及应用程序框架和许多控件等的帮助,大大简化了程序开发的过程并减少了开发的工作量和难度,故获得广泛的应用。基于Windows MFC的开发方法并不排斥使用Windows API,事实上,在Windows MFC的开发过程中,总是要使用Windows API函数以完成特定的功能,以Windows MFC设计广泛存在于工业实时控制、检测等应用领域的软件,引入多线程来实现多任务,而多线程的通信对于软件系统性能的提高有决定性作用。 1.2多线程概述 实时系统对多任务的要求比较普遍,典型的应用是实时监控系统要求后台数据采集。这时通信程序就要有一个线程专门负责数据采集,以实现实时多任务的需要。自Windows95引入的先进技术之一就是线程。线程是Windows95唯一执行单位,是Windows95为程序分配CPU时间的基本实体。每个进程由一个线程或多个线程组成,每个进程至少有一个线程,各个线程可根据其调度优先级来分配CPU时间以完成指定的操作,所以Windows95可以靠线程的优先级来确定分配给线程的CPU时间片,其线程调度是抢先多任务方式。同一进程中的多个进程,可以共享地址空间和所有的处理器资源,避免了用多进程实现并行性的缺陷。 1.3基本应用及实现简介 除了简单的应用之外,在通信程序设计当中,必须使用多线程技术。对于单CPU系统,多任务操作是通过最大限度地利用CPU时间来实现,各个线程轮流使用CPU时间片,尽量使CPU满负荷运转。一般而言,一个完整的通信过程必须创建若干个线程,这些线程包括主线程、监视线程、读线程、中间处理线程和写线程。各线程主要分工如下:? 主线程负责有关文件的打开、初始化、关闭和与用户的交互。监视线程监测有关量的情况,对其状态的变化做出反应。由于通信事件的发生多为不可预知的,监视线程在程序的整个生命周期当中都应该存在。因此,有的时候主线程和监视线程可以合二为一。接下来,根据需要创建相应的读线程、中间处理线程和写线程。 实际应用当中,并不一定要创建上述所有线程。如果读操作、中间处理和写操作在时间上不发生冲突的话,完全可以合并为一个线程。这时各个操作之间有明确的先后关系。当检测到有数据进入时,程序开始读取字符,当读到规定的字符之后,依次进行中间处理和写操作。当然,这种合并要满足一定的条件,即在下一次检测到有效数据进入之前,必须保证能够完成所有的中间处理和写操作。如果这一条件不能满足,可以在读线程尚未完成之前创建中间处理线程和写线程,从而充分利用CPU的空闲时间。但是多个线程的存在,增加了程序设计的难度。为了协调各个线程,必须明确线程之间的同步关系。可以说,线程之间的同步实现是通信的难点。在多线程中最好使用同步类来控制、访问共享数据,这将会使程序更加完善、可靠。 通信程序可用VC++提供的通信控件编写,这主要是由于控件简洁实用,但当实时性不能不考虑时,控件要用到线程中就比较困难。因为控件必须拖到对话框中使用,在线程中就不能像在对话框中那样方便地使用控件进行数据采集。 ????多线程通信程序则是基于Windows系统的事件驱动和消息传送系统的一种应用领域。根据线程的特点,它又可分为用户界面线程和工作线程,工作线程又可叫辅助线程。用户界面线程有消息循环队列,通常还有窗口,适合于完成输入输出等和用户有关的任务,而工作者线程没有消息循环队列,没有窗口,适于完成后台任务,如大文件的读写、CPU密集型的运算等,到其完成任务后再向系统发消息,从而实现多个任务的并行执行,大大提高代码的时、空效率,增强程序的功能,主线程与子线程之间的通信就是关键技术。该论文就是介绍了这方面的相关技术、实现方法。 1.4本文的主要内容 ??? 1.介绍了课题的背景、多线程的基本概念,基本应用以及其实现方法。 ??? 2. VC++6.0MFC简介,以及各种类。 ???

文档评论(0)

精品资料 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档