下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实习报告日期:实习题目:基于Windows环境的读者写者问题完成人姓名:杨雪亚班级:物联网工程学号:2014141461034实习内容简要描述创建一个控制台进程。此进程包含n个线程。用这n个线程来表示n个读者或写者。每个线程按相应测试数据文件(后面有介绍)的要求进行读写操作。用信号量机制分别实现读者优先和写者优先的读者-写者问题。运行结果显示要求:要求在每个线程创建、发出读写操作申请、开始读写操作和结束读写操作时分别显示一行提示信息,以确定所有处理都遵守相应的读写操作限制。主要代码结构(附注释)publicclassreaderfirst{classwriterextendsThread{//写者进程publicwriter(intno,doublest,doublert);publicvoidrun();}classreaderextendsThread{//读者进程publicreader(intno,doublest,doublert);publicvoidrun();}publicvoidrun();//数据写入和读取publicstaticvoidmain(Stringargs[]){//主程序 (newreaderfirst()).run(); }}结果分析(或错误原因分析)运行结果如左注释:如果上述表格空间不够,可以另附表格进行说明附代码:importjava.util.concurrent.Semaphore;publicclassreaderfirst{ Semaphoremutex=newSemaphore(1);//提供互斥reader_count信号量 Semaphorewrt=newSemaphore(1);//提供读者写者同步信号量 intrwn=0;//读者等待数 intreader_count=0;//读者数,初始值为0 classwriterextendsThread{//写者进程 intnum; doublesleeptime; doubleruntime; publicwriter(intno,doublest,doublert){ num=no; sleeptime=st; runtime=rt; } publicvoidrun(){ try{ sleep((int)(sleeptime*1000)); System.out.println("第"+num+"号写者想写,现在共有读者"+reader_count +"个"); if(rwn==0){ wrt.acquire(); System.out.println("第"+num+"号写者正在写,请等待..."); sleep((int)(runtime*1000)); System.out.println("第"+num+"号写者写完了"); wrt.release(); } }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }System.out.println(num+”“+sleeptime+”“+runtime); } } classreaderextendsThread{//读者进程 intnum; doublesleeptime; doubleruntime; publicreader(intno,doublest,doublert){ num=no; sleeptime=st; runtime=rt; } publicvoidrun(){ try{ sleep((int)(sleeptime*1000)); System.out.println("第"+num+"号读者想读"); rwn++; mutex.acquire(); rwn--; if(reader_count==0){ wrt.acquire(); } reader_count++; System.out.println("第"+num+"号读者正在读"); System.out.println("现在共有"+reader_count+"个读者"); mutex.release(); sleep((int)(runtime*1000)); mutex.acquire(); reader_count--; System.out.println("第"+num+"号读者读完了,此时共有"+reader_count +"个读者"); if(reader_count==0){ wrt.release(); } mutex.release(); }catch(InterruptedExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); }System.out.println(num+”“+sleeptime+”“+runtime); } } publicvoidrun(){ readerr1=newreader(1,3,5); writerw2=newwriter(2,4,5); readerr3=newreader(3,5,2); readerr4=newreader(4,6,5); writerw5=newwriter(5,5.2,3);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公司人事聘用合同范本
- 2024-2025学年新教材高中生物第4章生物技术的安全性与伦理问题第1节转基因产品的安全性课时分层作业含解析新人教版选择性必修3
- 2025年南平道路货运驾驶员从业资格考试题库
- 2025年深圳货运从业资格证
- 2025解除劳动合同的手续
- 2025合同管理制度2
- 2025年广西货运从业资格证考试题及答案
- 2025年丽水货运从业资格模拟考试题
- 蟹肉卷行业深度研究报告
- 2025标准中介购房合同样式
- 肱骨近端骨折护理查房课件整理-002
- 进入答辩环节的高职应用技术推广中心申报书(最终版)
- 高等数学(理工)Ι知到章节答案智慧树2023年重庆科技学院
- 2023学年完整公开课版瑶族
- 高考模拟作文“同舟共济渡难关团结合作创未来”导写及范文
- 翻译技术实践知到章节答案智慧树2023年山东师范大学
- 尾矿库基本知识
- 三年级体质健康数据
- 矿山企业新员工入职公司三级安全教育培训必备教材(全套)
- 感染性休克指南
- GB/T 32891.2-2019旋转电机效率分级(IE代码)第2部分:变速交流电动机
评论
0/150
提交评论