欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    多线程和DLL技术.ppt

    • 资源ID:6266177       资源大小:325.97KB        全文页数:22页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    多线程和DLL技术.ppt

    第19章 多线程和DLL技术,Windows中有两个重要的编程手段,多线程技术和DLL技术。多线程是将程序执行分布到多个线程同时执行,这样可以加快程序的运行效率,并能提高程序的并发性。DLL可以将实现不同功能的各个模块组织为不同的DLL,实现功能模块化,提高程序的耦合性。本章将介绍多线程程序的开发、多线程的同步处理以及DLL的开发方法。,19.1 多线程程序开发,Window是支持多线程的操作系统。因此,VC 6.0中提供了对多线程程序开发的支持,包括Win32多线程程序开发和MFC多线程程序开发。根据多线程程序的处理类型不同,线程分为工作者线程和界面线程。本节将介绍多线程工作机制、两种创建多线程程序的方法以及工作者线程和界面线程的创建方法。,19.1.1 多线程工作机制,线程是程序的基本运行组成部分,是Win32调度机制中最小的执行单位。线程使用线程上下文记录线程的执行状态,包括堆栈、CPU寄存器状态和在系统调度执行列表中的入口。一个进程由多个线程、代码执行段、数据和其他相关资源组成。进程中的线程共享进程的所有资源。,19.1.2 Win32多线程程序开发,VC 6.0提供了创建多线程应用程序的支持,包括使用Win32 API开发多线程程序和使用MFC类库开发多线程程序。使用Win32 API开发多线程程序只需要将线程的启动地址传入线程的启动函数中,即可启动线程。Win32 API中提供了下列函数实现多线程程序的编写。,19.1.3 MFC多线程程序开发,除了提供对Win32多线程程序开发的支持外,VC 6.0还提供了对MFC对线程程序的开发。MFC中的CWinThread类实现了对MFC多线程的支持。通常情况下,不需要直接创建CWinThread对象,而是通过调用AfxBeginThread()函数创建CWinThread对象。,19.1.4 工作者线程和界面线程,MFC多线程程序中的线程分为工作者线程和界面线程两种线程。工作者线程通用用来完成后台处理任务。例如,将文档内容输出到打印机、计算年销售总额等任务可以设计为工作者线程。用户界面线程通常用来处理用户输入,响应用户发送的事件和消息。Win32多线程程序是不区分这两种线程的,只需要知道线程的启动地址就可以启动线程。,19.2 多线程同步处理,多线程虽然可以实现任务的同步执行,但是因为不同线程可能访问相同的资源,而访问资源的各个线程是“同时”进行的。因此,多线程编程最重要的方面就是多线程的同步处理。本节介绍完成多线程同步处理的等待函数、同步对象以及如何实现进程间同步,并讲解支持多线程同步的互斥对象、信号量对象、事件对象和关键段对象的使用。,19.2.1 等待函数,在单线程程序中,因为不存在同时访问同一对象的问题,因此不需要处理线程同步。而在多线程程序中,因为各个线程间会发生同时访问同一资源的情况,因此需要处理同步问题。对于资源的读取,可以不进行同步处理,但是只要涉及到资源的写操作,则必须进行同步处理。,19.2.2 同步对象,使用等待函数可以等待资源空闲时,再在线程中操作指定资源。而资源是否空闲一般是通过同步对象来控制的。同步对象用来记录关键资源的状态,每次等待函数返回前会修改关键资源的状态,将其标记为已使用,直到调用同步对象的释放函数,才会将关键资源的状态置为空闲。,19.2.3 使用Mutex互斥对象,互斥对象用来表示线程对指定资源访问的锁定。当一个线程使用互斥对象对指定资源进行访问时,其他线程就不可以访问这个资源。只有当线程释放对互斥对象的访问时,其他线程才可以访问此资源。调用等待函数的线程执行的条件是:它需要等待使用此互斥对象的线程释放对互斥对象的占有权。,19.2.4 使用Semaphore信号量对象,信号量同步对象允许线程同时访问一个或多个进程资源。使用信号量对象可以指定同时访问资源的线程的最大个数和初始化时可以访问资源的线程数。信号量同步对象一般用于只能由有限数目的用户访问的资源的共享控制。但是无论什么资源,对于资源写操作,信号量的计数不能超过1。,19.2.5 使用Event事件对象,事件对象用来表示对象是否有信号。如果有信号,表示当前对象是空闲的,没有被其他线程操作,如果有线程对资源进行操作时,则对应的事件对象处于无信号状态,则所有调用等待函数的线程会等待此事件对象处于有信号状态时,才会继续执行。,19.2.6 使用Critical关键段对象,临界区又称为关键段,是允许一个线程在同一时间访问一个资源或关键源代码的同步对象。临界区一般用于在同一时间只允许一个线程对其访问的情况。例如,修改账户余额,就只能在同一时间只允许一个线程处理。临界区的是为保护关键资源的访问。使用临界区前,首先需要调用InitializeCriticalSection()函数初始化临界区对象。,19.3 DLL的种类及创建,动态链接库(即DLL,Dynamic-link libraries)是将实现一定功能的函数和数据按照一定的规则封装在一起的模块。Windows操作系统就是通过DLL将系统功能封装在各个不同模块中的。因此,应用程序经常会遇到调用系统DLL或或用户自定义DLL的情况。本节介绍将动态链接库的创建方法和调用方法。,19.3.1 应用程序与DLL的区别,在Windows中,应用程序是指完成一定功能的可执行程序。DLL是完成一定功能的模块。例如,Windows中的Win32应用程序接口,就是通过一组动态链接库来实现的,任何应用程序都可以通过调用动态链接库的方式使用Win32 API。应用程序与DLL都是可以包含数据、函数和类的可执行程序模块。,19.3.2 DLL的种类,在VC 6.0中,根据DLL是否使用MFC,DLL共分三种类型1.不使用MFC的非MFC DLL,是内部不使用MFC类库的DLL。2.使用MFC的规则MFC DLL,是DLL内部使用MFC类库。3.MFC扩展DLL,是DLL内部使用MFC类库,并且可以导出MFC类的扩展类,供应用程序调用。,19.3.3 查看DLL接口,要使用现有的DLL,首先需要了解DLL提供的接口。VC 6.0提供了查看DLL接口的工具,Depends工具。,19.4 DLL的开发,上一节介绍了DLL的工作原理、分类及查看。本节主要介绍如何创建不同类型的DLL及测试DLL的方法。主要讲解非MFC DLL、规则MFC DLL及扩展MFC DLL三种类型的DLL创建方法以及如何测试DLL。,19.4.1 创建非MFC DLL,VC 6.0提供了创建非MFC DLL的应用向导,使用非MFC DLL的向导,可以创建通用DLL。,19.4.2 创建规则MFC DLL,MFC规则DLL是使用MFC,但是导出的接口不支持MFC的DLL。它既可以被MFC应用程序调用也可以被非MFC应用程序调用。本小节以一个示例讲解如何创建规则MFC DLL。本示例中会在DLL中定义登录窗体的实现,并在DLL中提供一个导出登录函数,此登录函数调用DLL中的登录对话框。,19.4.3 创建扩展MFC DLL,与规则MFC DLL不同的是扩展MFC DLL是内部使用MFC类库,并且导出的接口也支持MFC类库的DLL。它主要解决了在动态链接库和应用程序之间传递派生自MFC类库的扩展类的功能。只有使用MFC共享版本生成的MFC可执行文件才可以使用扩展MFC DLL。,19.4.4 DLL测试,与可执行程序相同,在编写动态链接库程序时,需要调试程序的正确性。动态链接库的调试与可执行程序的调试是类似的,可以通过断点跟踪程序运行的过程、可以使用内存窗口查看内存情况、可以通过查看窗口查看运行上下文的变量的值。,

    注意事项

    本文(多线程和DLL技术.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开