多线程和DLL技术.ppt
《多线程和DLL技术.ppt》由会员分享,可在线阅读,更多相关《多线程和DLL技术.ppt(22页珍藏版)》请在三一办公上搜索。
1、第19章 多线程和DLL技术,Windows中有两个重要的编程手段,多线程技术和DLL技术。多线程是将程序执行分布到多个线程同时执行,这样可以加快程序的运行效率,并能提高程序的并发性。DLL可以将实现不同功能的各个模块组织为不同的DLL,实现功能模块化,提高程序的耦合性。本章将介绍多线程程序的开发、多线程的同步处理以及DLL的开发方法。,19.1 多线程程序开发,Window是支持多线程的操作系统。因此,VC 6.0中提供了对多线程程序开发的支持,包括Win32多线程程序开发和MFC多线程程序开发。根据多线程程序的处理类型不同,线程分为工作者线程和界面线程。本节将介绍多线程工作机制、两种创建多
2、线程程序的方法以及工作者线程和界面线程的创建方法。,19.1.1 多线程工作机制,线程是程序的基本运行组成部分,是Win32调度机制中最小的执行单位。线程使用线程上下文记录线程的执行状态,包括堆栈、CPU寄存器状态和在系统调度执行列表中的入口。一个进程由多个线程、代码执行段、数据和其他相关资源组成。进程中的线程共享进程的所有资源。,19.1.2 Win32多线程程序开发,VC 6.0提供了创建多线程应用程序的支持,包括使用Win32 API开发多线程程序和使用MFC类库开发多线程程序。使用Win32 API开发多线程程序只需要将线程的启动地址传入线程的启动函数中,即可启动线程。Win32 AP
3、I中提供了下列函数实现多线程程序的编写。,19.1.3 MFC多线程程序开发,除了提供对Win32多线程程序开发的支持外,VC 6.0还提供了对MFC对线程程序的开发。MFC中的CWinThread类实现了对MFC多线程的支持。通常情况下,不需要直接创建CWinThread对象,而是通过调用AfxBeginThread()函数创建CWinThread对象。,19.1.4 工作者线程和界面线程,MFC多线程程序中的线程分为工作者线程和界面线程两种线程。工作者线程通用用来完成后台处理任务。例如,将文档内容输出到打印机、计算年销售总额等任务可以设计为工作者线程。用户界面线程通常用来处理用户输入,响应
4、用户发送的事件和消息。Win32多线程程序是不区分这两种线程的,只需要知道线程的启动地址就可以启动线程。,19.2 多线程同步处理,多线程虽然可以实现任务的同步执行,但是因为不同线程可能访问相同的资源,而访问资源的各个线程是“同时”进行的。因此,多线程编程最重要的方面就是多线程的同步处理。本节介绍完成多线程同步处理的等待函数、同步对象以及如何实现进程间同步,并讲解支持多线程同步的互斥对象、信号量对象、事件对象和关键段对象的使用。,19.2.1 等待函数,在单线程程序中,因为不存在同时访问同一对象的问题,因此不需要处理线程同步。而在多线程程序中,因为各个线程间会发生同时访问同一资源的情况,因此需
5、要处理同步问题。对于资源的读取,可以不进行同步处理,但是只要涉及到资源的写操作,则必须进行同步处理。,19.2.2 同步对象,使用等待函数可以等待资源空闲时,再在线程中操作指定资源。而资源是否空闲一般是通过同步对象来控制的。同步对象用来记录关键资源的状态,每次等待函数返回前会修改关键资源的状态,将其标记为已使用,直到调用同步对象的释放函数,才会将关键资源的状态置为空闲。,19.2.3 使用Mutex互斥对象,互斥对象用来表示线程对指定资源访问的锁定。当一个线程使用互斥对象对指定资源进行访问时,其他线程就不可以访问这个资源。只有当线程释放对互斥对象的访问时,其他线程才可以访问此资源。调用等待函数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多线程 DLL 技术
链接地址:https://www.31ppt.com/p-6266177.html