多线程编程模型的研究与应用

多线程编程模型的研究与应用

ID:38274345

大小:126.40 KB

页数:3页

时间:2019-05-25

多线程编程模型的研究与应用_第1页
多线程编程模型的研究与应用_第2页
多线程编程模型的研究与应用_第3页
资源描述:

《多线程编程模型的研究与应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第25卷第1期广东工业大学学报Vo.l25No.12008年3月JournalofGuangdongUniversityofTechnologyMarch2008多线程编程模型的研究与应用吴丹,傅秀芬,苏磊,林乔捷(广东工业大学计算机学院,广东广州510090)摘要:在同步机制的基础上,结合局域网内网审计系统项目的实际开发经验,总结了流水线模型、对等工作组模型、客户端/服务器模型、主从架构模型和其它模型等共5种常见多线程编程模型,并介绍如何将这些模型运用到局域网内网安全审计系统中.关键词:多线程;互斥量;条件变量;编程模型中图分类号:TP31文献标识码:A文章编号:1007-716

2、2(2008)01-0047-03在多线程编程模型中,线程间是相互独立而又递过来的数据,然后执行本线程的逻辑代码,接着把相互依赖的.使用多线程编程模型编程就是将进程数据处理的结果传递到下一个线程,其中第一个线的任务划分为执行的线程,每一个线程为一个顺序程从用户端接收数据或者接收初始化数据,最后一的单控制流,而所有线程都是并发、并行并且是异步个线程负责把数据输出,整个过程就像一个串行的执行的,这样,多线程编程模型具有实现进程并行计流水线.其模型如图1所示.算、节省内存空间、减少系统管理开销、快速切换、[1](线程)通信易于实现等优点.更重要的是多线程编程模型提供了一种新型的模块化编程

3、思想和方法,这种方法能清晰地表达各种独立事件的相互关系,但是这种多线程编程模型的并发和异步优点也带来了一定的复杂度:并发和异步机制带来了线程图1流水线模型间资源竞争无序性.因此需要引入同步机制来消除这种复杂度和实现线程间共享数据,以一致的顺序在流水线模型中,整个环节的数据处理过程看执行一组操作.似串行运行,但其本质还是并发或并行运行的,它与由上可见,如何使用同步机制来消除线程并发、真正的串行运行程序是有本质区别的,其主要区别并行和异步执行而带来的复杂度是多线程编程中最在于前一线程在处理数据的同时,后一线程可以处重要的问题,也是多线程编程模型研究的核心问题.理前一线程传过来的结果.流

4、水线模型具体算法简单描述为1多线程编程模型1)上锁互斥量.[2]线程是机器中连续的、顺序的执行属性集合,2)等待本线程处理数据完毕.多线程编程提供一种新型的模块化思维方式和编程3)传递线程结果给到下一线程.方式,它将独立的或者低耦合的执行代码显式地分4)发送/数据准备好0信号,唤醒相应线程来处离,并将这些低耦合的执行代码设计为相对独立运理已准备好的数据.行的线程,这种相对独立运行的线程必须相互依赖5)解锁互斥量.和相互合作才能提供一套完善而又完整的接口、服1.2对等工作组模型务或系统,在此总结和介绍流水线模型、对等工作组[4]在流水线模型中,后一个线程要等待前一个模型、客户端/服务

5、器模型、主从架构模型和其它模线程的处理结果,然后依次把结果传递下去,直至最型等5种常见多线程编程模型.后输出结果,这是一种并行处理的方法.但是在现实1.1流水线模型系统中,还有一些数据间的耦合度不高,它们不需要[3-4]流水线模型是每个线程接受上一个线程传等待前一数据的处理结果,而且它们的结果也不影响后一线程的运行,像这种低耦合度的数据集合可收稿日期:2007-07-13作者简介:吴丹(1978-),男,硕士研究生,主要研究方向是计算机协同(CSCW)和计算机安全.48广东工业大学学报第25卷以分别采用不同的逻辑处理,而这正是对等工作组5)服务器端处理复制过来的客户端请求.模型所要

6、处理的问题.6)如果客户端请求中要求/同步0机制,则重新在对等工作组模型中,数据不是由一个线程独上锁服务器端互斥量,发送/请求已处理完成0通知立处理,而是把低耦合度的数据分别由一组线程独客户端,解锁服务器互斥量.立处理,而这一组独立线程之间是平等的,它们都独7)如果客户端请求是/退出0操作,则退出.立地从数据集中读取数据,然后在线程内进行处理.工作组模型本质上是并发、并行和异步,其模型如图2所示.图3客户端/服务器模型1.4主从架构模型上面描述的3种模型都具有一些共性:1)都没图2对等工作组模型有限制并发线程的数量.众所周知,系统资源是有限对等工作组模型具体算法简单描述为的,无限制

7、地使用线程不仅不会提升性能,反而会使1)上锁互斥量.性能下降.所以在实用软件系统中,限制并发线程的2)阻塞条件变量,直到有任务到来.数量是很有必要的.2)都没有一个线程能统一调度3)解锁互斥量.和平衡所有线程,这会造成线程管理和调度的混乱.4)有任务到来时重新上锁互斥量.而主从架构模型恰恰能弥补这两点不足.5)复制一个数据包,并把该数据包从工作链表主从架构模型类似对等工作组模型,但其主要中删除.特点是模型中有一个线程能统一调度和平衡所有的6)解锁互斥量,以便让其它线程

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。