1 / 4
文档名称:

多 线 程 编 程 应 用 技 术 - 多线程编程应用技术.doc

格式:doc   页数:4
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

多 线 程 编 程 应 用 技 术 - 多线程编程应用技术.doc

上传人:zhangbing32159 2014/5/31 文件大小:0 KB

下载得到文件列表

多 线 程 编 程 应 用 技 术 - 多线程编程应用技术.doc

文档介绍

文档介绍:多线程编程应用技术

线程(Thread)一词最早是二十世纪60年代。当时还没有现代意义上的计算机操作系统。有专家设想了一种未来的由多个CPU所构成的计算机系统可同时进行多个不同的计算。在计算之前,将一个较为复杂的计算分解为多个串行和并行的计算单元,然后让每个CPU同时处理一个并行计算单元计算过程,在达到某个时刻的时候,所有的并行计算单元的结果都可以肯定得到,从而为下一个串行计算作好准备。这样的多CPU计算机系统的计算速度要大大的高于单CPU结构的计算机系统。而当时的研究人员为每个并行计算单元找到了一个词汇—线程。。
⒈线程的定义和属性
相对于现代计算机操作系统中进程(Process)概念,计算机学科对线程的定义是共享同一进程所拥有的存储器、文件系统、I/O设备等资源并具备独立使用CPU资源完成一个规定计算的处理过程的计算机指令系统。线程有着如下的特点:
·并行—在多CPU系统中每个线程可同时各自占用一个CPU资源;在单CPU系统中由其归属进程事先规定好每个线程占用CPU资源的时间片,由操作系统对其进行CPU时间片轮循控制。
·三态变化—除了等待CPU资源状态之外,线程可以被其归属进程设定为挂起和击活状态。
·线程属性—以面向对象的概念去解释线程可有下述属性:
―线程号(Thread ID);
―寄存器状态(包括程序计数器和堆栈指针);
―堆栈;
―信号掩码(Signal mask);
―优先级(Priority);
―线程私有的存储段(Thread-private storage);
⒉共享进程资源的调度策略
由于线程可以共享进程的执行代码和大部分数据,共享数据被一个线程修改之后,归属该进程的其他线程是可以知道的。利用此特性,当归属一个进程的两个以上线程彼此间进行通信的时候,可以不经过操作系统的帮助。这样,可以避免或极大的减少与内核之间的互相切换(即虚拟交换的),从而大大提高程序的处理效率。一个进程占用内核资源的规模与其开设的线程数目无关。
当然一个进程对属于自身的线程应在种类和数量两方面进行管理。同类线程数量的过大会造成CPU的过负荷状态的发生。种类的过多会造成进程对线程调度处理的开销过大。于是人们想出了一个管理方案,将某一类线程事先与其有关的系统资源绑定,并将其置于一个线程库内,调用时便到该线程库查找,从而大大降低了线程调度的管理开销。因此又将此类结构的线程称为轻进程(Lightweight Porcesses或LWP)。

⒈MFC线程分类
①辅助线程(Wor