欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    多线程技术在VB 5中的应用.docx

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

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

    多线程技术在VB 5中的应用.docx

    多线程技术在VB5中的应用摘要:多线程技术是Win95系统的一大特色。本文深化阐述了Win95进程的多线程机制,并具体讨论了在VB5中实现多线程并行性多任务的方法。关键词Win95VB5多线程进程多任务APIVB5作为应用程序的强大开发平台,其新增的支持多线程组件的功能为大型企业和远程应用提供了坚实的根底和广阔的应用前景。通太多线程组件技术来优化远程效劳和客户机效劳器应用程序已经成为一种重要的应用程序优化方案。一、Win95系统的多线程机制及其与WIN3.x多任务机制的比拟支持基于多线程Multi-thread的多任务处理是Win95系统比16位的Windows3.x单纯划分CPU时间的多任务处理优越的重要标志之一。它的预先抢占式多任务和多线程处理使Win95系统的响应和平稳的后台处理性能得到很好的改善。Windows3.x操纵系统实现的多任务被称作协作式多任务。协作式多任务的关键是每个单独的应用程序决定何时放弃处理器以让另外一个可能正在等待处理的应用程序实现处理。这使得Windows3.x平台易受到不完善的应用程序的影响,这种应用程序会在实现一些漫长费时的处理或者干脆陷入死循环中让其他应用程序也被困住而不能运行。另外,在Windows3.x中,所有应用程序都是单线程的,即在运行时的每个时间点上只有一条执行途径。Windows3.x的这种单线程协作式多任务机制显然在相当多的时候只能提供一种低效率和不够平安稳定的多任务运行环境。对于32位Windows95,操纵系统在本质上发生了变化。由预先抢占式多任务代替了协作式多任务。所谓预先抢占式多任务就是由操纵系统而不是应用程序自身来决定何时把处理器从当前的应用程序撤出,并把处理器交给另一个正在等待处理器的应用程序来使用。这与当时拥有处理器的应用程序是否预备放弃处理器给另外的应用程序使用无关,处理器不必经过应用程序的同意就被操纵系统夺走了。这样操纵系统才能使多个操纵大数目任务的应用程序在每个任务上获得大致一样的进展。操纵系统的这一手段阻止了某个应用程序在私占处理器时使其他应用程序难以执行的可能性。一个Win95的32位应用程序总是由一个进程、一个主线程和假设干个子线程组成,它的一个突出特点是支持多线程,即在竞争CPU的线程分配CPU时间。进程Process是一个运行例程,当一个应用程序调入内存预备执行时,它就产生一个进程。一个进程由假设干EXE文件的代码和数据块组成,它们被存放在逻辑上达4GB的线性地址空间内,EXE所需的DLL动态链接库也将它们的代码和数据装入到此空间内。进程是静态的,即一个32位的Win95进程并不执行什么指令,为了让进程完成一些工作,进程必须至少占有一个线程,由线程负责执行包含在进程的地址空间中的代码。进程占有的资源包括其内的线程都随着进程的生成而产生,都随着进程的终止而被系统撤消。线程Thread是进程中的一个执行单元。同一进程的各个线程对应于一组CPU指令、一组CPU存放器以及一个堆栈。进程空间存放的代码由线程来执行,每个进程中至少有一个线程在执行其地址空间中的代码。对于同一进程中的多个线程来讲,它们可以分享地址空间和所有的处理器资源,包括线程存取令牌、根本优先级、对象句柄和其他资源等。同时,线程的执行与否,是看其处在挂起态还是激活态。处于激活态的各线程由调度程序决定哪个线程将得到下一个处理器时间片。下一个时间片总属于那些预备执行的线程中优先权最高的一个。在Win95中,存取不可分享的资源、代码段称为临界区。需要留意的是,为保证代码的正确执行,每次只能有一个线程在临界区段中执行。在一个线程正在向一个文件写入数据、更新数据库或者修改可分享的变量时,其他线程不允许存取同一资源。另外由于Win95为每个进程创立2GB的进程空间,操纵系统DLL和其他DLL被装入其上的2GB地址空间中,这样每个进程都有自己的存储空间的拷贝。这种临界区和2GB地址空间的设置都大大进步了Win95多任务环境下的平安性和稳定性。允许有多个应用程序同时运行的才能,也就具有了对单个应用程序,在任何时刻都有多道线程在执行的技术。线程对应用程序来讲就像应用程序对操纵系统一样。假如某个应用程序有多道线程在运行,根本上就有多个“应用程序在整个应用程序中运行。这就允许应用程序同时完成多项工作。基于线程的多任务系统,使得同一进程的两个或者多个线程可以同时运行。对用户而言,多任务的优点是可以同时翻开和运行多个应用程序。对应用程序开发者来讲,Win95多任务的优点是可以创立多线程的应用程序以及执行多线程的进程,这样就便于各任务之间的协调操纵和运行。例如,可以将整个进程划分为承受用户输入的线程、数据处理线程、承受远程信息线程、外围处理线程等,这样使得每个线程都同时运行,充分利用了CPU的空闲时间片,使得进程应用程序的整体运行效率得到较大进步。另外,线程仅需要很少的附加资源开销,并且线程的创立比进程快。用多线程实现并行性多任务,防止了用多个进程即多个应用程序实现并行性的缺陷。同时,由于同一进程的所有线程分享同一内存这些线程仅具有不同的堆栈和存放器内容,故不再需要特殊的数据传送机制。显然,多个线程在互相通讯时,完全不需要建立分享存储区或者分享文件。正是线程的低资源开销和高的运行效率,使得它相对于进程式并行性多任务具有更大的上风和更为广阔的应用前景。多线程技术在远程应用和客户机效劳器方式的应用中占据着举足轻重的地位。二、VB5中的多线程技术Win95中的多线程是一种标准形式,它得到了VC+或者BC+等开发工具的很好支持。但是它的工作原理和编程机制却是一种针对纯C+程序员的专利。对VB这种舍弃了指针等复杂数据类型的以简便和实用见长的开发工具却并不完全合适。在VB5中能多线程运行的应用程序必须知足以下的条件-即这个应用程序必须放弃用户交互,即不能有类似于窗口之类的用户界面。因此,微软在VB5中实际上不允许创立这种复杂的标准多线程应用程序。但是VB5为了远程应用程序和客户机效劳器的分布式处理的考虑,允许通过一种称为“单元模型apartment-model的多线程形式来创立多线程组件如ActiveXEXE。在这种形式中线程的同步问题通过给每个线程一套组件的全局变量并完全除去全局资源如窗体来防止。用单元模型线程,每个线程都有各自要使用或者访问的内存对象及对象变量的拷贝。即每个线程都有自己的单元,单元里放着线程要使用的对象,线程就被限制在自己的单元里。这样就把程序员从不得不考虑线程间协调使用变量和资源的难题中解脱出来。可见,VB5在增加线程功能的同时,也简化了内存对象的治理和线程同步。从以上可以得出这样一个结论,即应用VB5来获取多线程效果是实际可行的,只要创立一个进程外的ActiveX效劳器,并使用ActiveX的自动控制功能来为它工作就可以了。可见,VB5应用程序和DLL中的线程与通常形式的多线程方式不同,VB5中的线程特性使得它区别于支持标准多线程处理的VC+或者BC+开发工具。三、VB5的多线程应用与编程在分布式处理或者远程自动化的客户机/效劳器方式的应用中,为进步系统的效率经常需要优化程序。以一个远程应用程序为例,假如客户恳求的远程对象是多任务而且远程应用程序已在效劳器上运行,那么在创立对象时客户应用程序响应最快。然而,远程应用程序中的多任务对象会为客户导致问题。例如,假如多个客户同时使用一个远程应用程序,其中一个客户触发了内部错误,使远程应用程序异常退出,那么其他客户使用的对象也被去除。类似地,占用应用程序的操纵也会给多任务对象客户导致问题:所有客户都必须等待每一个操纵完成。当远程应用程序同时为多个客户程序效劳时,这个问题就特别突出,将显著降低系统的性能。由于VB5支持多线程的组件技术,可以用多线程来优化多任务对象的性能。在多线程下,每个新的多任务对象都独立运行-即单个客户不能占用其他客户的远程应用程序。在实际创立多线程的多任务对象时有一个很大的限制-即应用程序不能包含窗体。这意味着应用程序无法与用户交互。但是可以通过用多线程应用程序发放单用处应用程序对象的运行实例来解决这个问题,在VB5中,这种类型的多线程应用程序称为线程池治理器。在中文VB5中建立一个多线程的应用程序的根本步骤如下:1从“工程菜单中选择工程“工程1属性。2在“工程属性对话框中选择“ActiveXEXE工程类型,“启动对象下拉框中选择“无,此时“执行无用户界面的复选框有效,选中它。3在“线程缓冲池项中选择于包含的线程数。4参加程序运行需要的功能代码。5编译此工程。4编译时的工程属性设置详细如下列图。多线程应用程序可为每个对象分配一条线程或者固定数目的线程,当新对象创立时循环使用它们。作为一个缓冲的线程池治理程序,可以利用它为客户端应用程序维护翻开的自动化效劳器实例。在这种方案中,假如客户端应用程序需要使用某个对象,它们需要向缓冲池治理程序恳求使用一个线程。缓冲池治理程序将检查缓冲池,并决定是否准许恳求。这种方法具有以下优点:1它防止了每个客户端恳求带来的大量自动化效劳器创立费用。由于缓冲池通常是在客户端需要效劳器之前就创立完毕的。2根据客户端恳求的频率、潜伏的客户端的个数以及效劳器任务所需的时间,创立的缓冲池的大小比一对一的客户效劳器分配方案通常要小得多而且缓冲池的大小是可以随时进展调整的。假如缓冲池的大小为5个线程,那么在通常情况下是可以知足60个客户端的需求的。3它限制特定类型的效劳器不得超出规定的个数,该阈值是由效劳器治理员确定的。这是一种非常有用的性能调节参数,它还可以防止效劳器被恳求顶峰的低优先级效劳器滥用。自动化效劳器可以作为客户端运行在同一台计算机上。它也可以在远程计算机上运行,进而得到分布式处理带来的强大处理才能以及分享的网络效劳器带来的多用户访问特性。由于效劳器远程应用程序不具有通常意义上的用户界面,那么提供状态监控的另一种方法是由效劳器提供状态方法,并由单独的监控程序来对效劳器的状态进展查询。需要留意的一点是,由于关于线程的函数VB5本身并没有提供,必须借助于Win95系统提供的API应用程序接口函数集,这些函数必须先定义后使用。使用中也需要留意它们的参数传递问题,由于这些函数大局部是为C+程序员设计的,其中就涉及到一些参数类型转换的技巧。可以讲,API接口为VB提供了最珍贵的高级功能的根底,在很多VB自身没有解决方案的情况下,调用API接口函数往往几乎是唯一的可选方法。四、完毕语VB5通过自身特有的“单元模型多线程形式为程序员们提供了创立多线程组件的功能。通太多线程技术在VB5中的应用,为企业级应用,尤其是在远程应用程序及客户机效劳器的分布式处理方面,提供了强大多任务处理才能以及分享网络效劳器带来的多用户访问特性。为多任务的大型应用程序提供了一种优化的解决思路和方法。参考文献:1美StefanoMaruzzi(TheMicrosoftWindows95DevelopersGuide)北京:机械工业出版社1997.12美DanAppleman著(DanApplemansVisualBasic5.0ProgrammersGuidetotheWin32API)北京:机械工业出版社1998.83美Chapman.D著(WebDevelopmentwithVisualBasic5.0)北京:机械工业出版社1998.64美Mckelvy,M等著(SpecialEditionUsingVisualBasic5)北京:机械工业出版社1997.12

    注意事项

    本文(多线程技术在VB 5中的应用.docx)为本站会员(安***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开