多线程编程应用技术.doc_第1页
多线程编程应用技术.doc_第2页
多线程编程应用技术.doc_第3页
多线程编程应用技术.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多线程编程应用技术一线程的基本概念线程(Thread)一词最早是二十世纪60年代。当时还没有现代意义上的计算机操作系统。有专家设想了一种未来的由多个CPU所构成的计算机系统可同时进行多个不同的计算。在计算之前,将一个较为复杂的计算分解为多个串行和并行的计算单元,然后让每个CPU同时处理一个并行计算单元的计算过程,在达到某个时刻的时候,所有的并行计算单元的结果都可以肯定得到,从而为下一个串行计算作好准备。这样的多CPU计算机系统的计算速度要大大的高于单CPU结构的计算机系统。而当时的研究人员为每个并行计算单元找到了一个词汇线程。真正意义上实现线程概念的操作系统是1986年SUN公司推出的Solaris2.x系统。线程的定义和属性相对于现代计算机操作系统中进程(Process)概念,计算机学科对线程的定义是共享同一进程所拥有的存储器、文件系统、I/O设备等资源并具备独立使用CPU资源完成一个规定计算的处理过程的计算机指令系统的总和。线程有着如下的特点:并行在多CPU系统中每个线程可同时各自占用一个CPU资源;在单CPU系统中由其归属进程事先规定好每个线程占用CPU资源的时间片和优先级,由操作系统对其进行CPU时间片轮循控制。三态变化除了等待CPU资源状态之外,线程可以被其归属进程设定为挂起和击活状态。线程属性以面向对象的概念去解释线程可有下述属性:线程号(Thread ID);寄存器状态(包括程序计数器和堆栈指针);堆栈;信号掩码(Signal mask);优先级(Priority);线程私有的存储段(Thread-private storage);共享进程资源的调度策略由于线程可以共享进程的执行代码和大部分数据,共享数据被一个线程修改之后,归属该进程的其他线程是可以访问的。利用此特性,当归属一个进程的两个以上线程彼此间进行数据交换(通信)的时候,可以不经过操作系统的帮助。这样,可以避免或极大的减少与系统内核之间的互相切换(即虚拟交换的),从而大大提高程序的处理效率。一个进程占用系统内核资源的规模与其开设的线程数目无关。当然一个进程对属于自身的线程应在种类和数量两方面进行管理。同类线程数量的过大会造成CPU的过负荷状态的发生。种类的过多会造成进程对线程调度处理的开销过大。于是人们想出了一个管理方案,事先将某一类线程与其有关的系统资源绑定,并将其置于一个线程库内,调用时便到该线程库查找,从而大大降低了进程对线程调度的管理开销。因此又将具备此类结构特征的线程称为轻进程(Lightweight Porcesses或LWP)。二MFC多线程编程技术MFC线程分类辅助线程(Worker Thread)辅助线程不支持Windows的消息机制,通常用来执行后台计算或维护任务。用户界面线程(User Interface Thread)用户界面线程支持Windows的消息机制,可用来处理用户的输入,响应归属进程产生的事件和消息(即属于上面提到的轻进程)。主线程与归属线程设计要点Windows操作系统中每个进程都有一个主线程,随进程起动时获得其所需要的资源。在其归属线程工作期间的大部分时间内,可以代替进程对其他线程进行调度和管理。WinApp类对象就是主线程的归宿,其他归属线程则由程序员设计。设计归属线程时要主要下述要点:由于不少可视化对象都是按一个归属线程设计安排的,其成员的工作地址是不固定的,因此在线程访问这些对象(成员数据、成员函数)时不要直接使用对象指针,而是应通过其句柄值再获得其当时的地址。在单CPU处理机中调试多线程应用时,应为每个归属线程安排足够的C

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论