下载此文档

【精品】PPT课件 吉林大学远程教育课件.ppt


文档分类:高等教育 | 页数:约21页 举报非法文档有奖
1/ 21
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/ 21 下载此文档
文档列表 文档介绍
吉林大学远程教育课件
Windows A P I编程
主讲人: 翟慧杰
学时:48
(第四十三讲)
第六节进程和线程
32位的 Windows操作系统(Windows 95以上版本(包括)及 ,本节以后用Windows代表这类操作系统)的一个重要特色就是支持一个应用程序能执行多个线程,这也是32位的操作系统优越于16位的操作系统的优点之一。用户可以在一个应用程序中进行不同类型的处理,这样能充分发挥操作系统的潜力。现今的应用程序中使用线程技术的例子也很多,例如,Win95的删除文件操作,前台是一个动画线程显示一片纸被摔碎的情形,而主体的文件删除操作却是在另一个线程中进行。
线程允许一个应用程序同时做很多事情,但是所谓同时,是指给人的感觉而言,CPU不可能在同一时间内做几件事情,只是由于CPU的高速运算能力,使得CPU在一个时间段内分别做了几件事,这是操作系统在这几个事件中来回切换,挂起运行任务,然后唤醒下一个任务,让人觉得这几件事是在同一个时间同时完成的。
在介绍多线程的程序设计技术之前,必须弄清线程和进程的区别和联系。
一个进程是一个由Windows系统装载进内存的可执行单元,操作系统将为进程建一个虚拟地址空间;线程是一个用于运行代码的Windows对象,被操作系统当作准备执行的一个执行体。进程包括代码、数据和文件、管道之类的资源,以及该进程的线程能够存取的线程同步对象。一个应用程序可以有一个以上的进程,一个进程可以有多个线程。
Windows每创建一个新的进程时,都将为该进程创建一个线程来开始执行实际的程序代码,这个线程称为主线程,一个过程只能有一个主线程。一个进程可以创建一个或者多个线程,并且这些线程都使用同一虚拟地址空间。地址空间是由过程提供的,这使得线程之间共享数据变得容易、不同的线程可以执行同一代码块,也可以执行不同的代码块。当主线程结束时,整个进程也就结束了。
进程不同于线程之处在于一个过程有自己专有的虚拟地址空间。当一个过程内有一个以上的线程时,每个线程都和进程共享统一虚拟地址空间,都能获取进程的系统资源、访问全局变量。线程可以执行进程任何部分的代码,并且可以创建新的线程。
在Windows ,拥有CPU时间的最小实体被称为一个任务。在Windows中,任务被称为进程,但是在32位的操作系统中,进程不再是拥有CPU的最小实体了,而是线程成为拥有CPU时间的最小实体。
线程的一个重要特征就是和创建自己的进程共享内存,它可以存取调用它的进程的代码和数据。每个线程拥有自己专有的栈和专有的执行上下文(专有执行上下文是一小块内存,它用于保存CPU处理寄存器的状态和一些与线程执行环境相关的数据)。一般说来线程不占用额外的内存空间。
注意:真正运行的程序单位是线程而不是进程,进程为运行的线程提供所要使用的数据、资源和地址空间。
一个主线程可以创建其他线程,创建出来的新线程又可以创建出其他的线程,以此类推。一个进程的所有线程可以同时进行,Windows操作系统自动在不同的线程之间切换。一般Windows操作系统对多个线程采用抢占式多任务方式,分配给线程的时间片取决于线程的优先权、线程是否正在等待同步信号等因素。
每个线程都在进程的内存空间执行,因而,每一个线程都可以访问全局数据,而且所有的线程都可以修改这些全局数据。因此,对多个线程的管理就存在一个线程之间的同步问题,如何解决线程的同步问题本章后续部分将详细介绍。
使用线程的主要益处在于:多线程使得进程能够同时执行多个操作。例如,一个应用程序可以使用一个线程来处理实时I/O,如在处理键盘和鼠标之类的用户输入的同时,应用程序使用其他较低的优先级的线程来处理那些不需要实时处理的任务(如计算或者后台打印等)。多线程在MDI应用程序中也很有用处,当一个MDI应用程序打开多个窗口的时候,可以指派不同的线程给各个窗口,用于处理各窗口的事务。
多线程在网络和通信方面也有很大用处,如一个命名管道服务程序可以为连接到该管道的每个客户创建一个线程。线程也可用来帮助应用程序处理来自多个通信设备的输入。
并不是说采用了线程技术就一定能大大提高程序的运行性能。应该说,线程技术也是有一定的局限性的,在有些情况下,采用了线程技术的应用程序其运行性能反不如没有采用线程技术的应用程序。一般,如果一个应用程序涉及到大量的I/O操作,则比较适宜采用线程技术,假设需要作一个大文件的排序操作,则可以考虑采用几个线程来实现,其中一个线程进行读写I/O操作,另外几个线程对读入的文件块进行排序操作。
注意:在线程之间进行切换也是要花费不少机时的,因此在采用多线程技术时,一定要避免过于频繁的线程切换。
第七节线程管理
由于一个程序中有多个线程在同时运行

【精品】PPT课件 吉林大学远程教育课件 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数 21
  • 收藏数 0 收藏
  • 顶次数 0
  • 上传人 薄荷牛奶
  • 文件大小 0 KB
  • 时间2014-12-04
最近更新