linux多线程的互斥与同步控制及实践

linux多线程的互斥与同步控制及实践

ID:34519175

大小:327.87 KB

页数:4页

时间:2019-03-07

linux多线程的互斥与同步控制及实践_第1页
linux多线程的互斥与同步控制及实践_第2页
linux多线程的互斥与同步控制及实践_第3页
linux多线程的互斥与同步控制及实践_第4页
资源描述:

《linux多线程的互斥与同步控制及实践》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、应用研究电脑知识与技术!"#$%多线程的互斥与同步控制及实践刘俞安徽工业大学职业技术学院计算机系!安徽马鞍山-./000摘要#随着计算机软硬件的发展!对计算机的执行效率的要求不断提高!多线程技术应运而生!现在被许多操作系统所支持"本文介绍了多线程系统中互斥与同步机制!在!"#$%系统下利用信号量操作及利用&’()*+,多线程函数编程实现多线程间的互斥与同步控制!并以生产者和消费者问题为例进行分析与实践"关键词#线程#多线程#互斥#同步#互斥锁#信号量中图分类号#23/4"文献标识码#5"线程!#$%&’("的引入线程间的互斥是为了避免对临界资源的同时使进程是程序执行的动态过程"是系统分配软硬件

2、用"从而避免因此而产生的不可预料的后果!临界资源资源的最小单位!而线程是进程产生的分支"是更小的是那些一次只能被一个线程使用的资源"在计算机系执行实体"但系统并不给它分配任何资源"它共享创建统中有很多软硬件资源都属于临界资源"如变量#堆它的进程所拥有的资源!同一进程内的所有线程共享栈#链表#队列#打打印机等!使用临界资源的那段代码同一内存地址空间"因而线程间的切换将不再需要资就称为临界区"互斥就是两个或两个以上的共用同一源信息的保存和进行地址空间的变换"减少了系统开资源的线程不能同时进入该资源的临界区"它可以保销"提高了系统效率和程序的并发性!在N2(9S系统中证对资源操作的正确性和完整性!由

3、此可以看出线程也引入了线程的概念与多线程机制!间的互斥关系是由于对共有资源的竞争而产生的间接)*+,-.中的线程机制制约"线程之间并没有直接的联系!N2(9S内核使用的仍是进程模型"而不是线程模实现线程间的互斥一般可通过两种途径实现W型!N2(9S内核为创建线程提供了一种轻量级的进程模一是通过设置互斥锁及其操作%加锁#解锁&来实型框架"而线程的真正实现是在用户空间中!N2(9S系现"流程为X图%Y$统提供了用户级线程和核心级线程"核心级线程由系统内核进行管理"其提供相应的系统调用和应用程序"接口EF’!对于用户级线程的管理"它提供了在用户空间执行的线程库"目前可用的线程库有N2(9SR1+*4

4、6;#二是通过设置共用信号量及F#A原语操作来实TIFR#TFRN等多种"大部分/2(9S发行版本都已安装现"流程为X图!Y$了/2(9S)1+*46的0)1+*46函数库"它是基于FU=’V标准!的!本文就是以N2(9SR1+*46;库为基础进行研究和设计的!/线程间的互斥与同步其中"F操作对信号量减一"A操作对信号量加一!/01互斥!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!名!,!-.45267$8+9:/2(;<2=>?)@2(:?"A2;94/BCC3$"技结束语术内幕$北京$希望电子出版社随着’()*+(*)的迅速发展和日益普及"信息安全理,D

5、-刘杰等"E=F轻松开发@*G网站!北京$希望电论与技术越来越显示其重要地位!公安动态信息系统子出版社克服传统工作过程复杂#效率低#准确性差的缺点"提,H-朱文余等"计算机密码应用基础!北京$科学出高了公安系统的效率及信息传递的准确性#及时性!版社参考文献!,#-I4J/*B?KKL4("=MN=OPAOPQR1*B?L0/*)*,%-静海"深入.*/0123网络编程!北京$中国铁道出P*K*+*(>*参考手册$北京$希望电子出版社版社收稿日期$!""#年#月!""#$%&&’电脑知识与技术应用研究在!"#$%中用&$’()定义信号量!&*’("#")((+函数对0)C5*.4,’$)*%,9

6、1DF用于对互斥体进行加锁操作信号量进行化!&*’,-.")函数实现+操作"被用来阻塞&互斥锁被置为91DF*4’3若互斥锁被原来就为91DF*4"当前线程直到信号量的值大于/"解除阻塞后将信号量则当前线程被阻塞!的值减一!&*’,01&)函数实现2操作"用来对信号量的0)C5*.4,’$)*%,$#91DF用于用于对互斥体进行解锁值加一"当加一后若信号量的值小于等于/3则唤醒一操作<互斥锁被置为$#91DF*4>"唤醒被锁定的线程!个被阻塞在这个信号量上的线程!信号量使用完毕后"0)C5*.4,’$)*%,4*&)516用于销毁互斥锁#可用函数&*’,4*&)516用来释放信号量#,-/同步

7、控制"!"#同步0)C5*.4,D1#4,)用于定义条件变量!线程间的同步是因为它们之间有相互的联系"它0)C5*.4,D1#4,"#")函数用于初始化一个条件变量!们相互合作$相互等待"一个线程的执行结果是另一个0)C5*.4,D1#4,-.")函数使线程阻塞在一个条件变线程能够执行的前提条件"因而各线程必须被控制按量上3并同时可以解开互斥锁"因此可以避免死锁的产一定的速度执行#例如后面研究的生

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

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

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