付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
操作系统实习报告日期:实习题目:基于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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年韶关学院单招职业技能测试题库附答案详解
- 2026年汝州职业技术学院单招职业倾向性考试题库附答案详解
- 2026年长春金融高等专科学校单招职业技能考试题库附答案详解
- 2026年武汉信息传播职业技术学院单招职业适应性考试题库带答案详解
- 2026年福建林业职业技术学院单招职业适应性考试题库参考答案详解
- 2026年宁波工程学院单招职业技能测试题库参考答案详解
- 2026年兰州科技职业学院单招职业倾向性考试题库及答案详解1套
- 2026年安徽国防科技职业学院单招职业技能测试题库及参考答案详解
- 2026年陕西财经职业技术学院单招职业技能测试题库及参考答案详解1套
- 2026年遂宁工程职业学院单招职业技能测试题库及答案详解一套
- 2025下半年贵州遵义市市直事业单位选调56人考试笔试备考题库及答案解析
- 2025年海北朵拉农牧投资开发有限公司招聘3人备考题库及一套完整答案详解
- THBJGJ 001-2024《套管加强型金属膨胀锚栓》
- 2025年宁波市鄞州区福明街道编外人员招聘6人(公共基础知识)综合能力测试题附答案解析
- 2025浙江宁波市梅山铁路有限公司招聘3人备考考点试题及答案解析
- 2025安徽淮北市消防救援支队招聘政府专职消防文员17人考试历年真题汇编带答案解析
- 2025湖南日报融媒传播有限公司招聘7人笔试考试参考试题及答案解析
- 2025年法医学案例分析与判断及答案解析
- 美国史智慧树知到期末考试答案章节答案2024年东北师范大学
- 当代科学技术概论知到章节答案智慧树2023年哈尔滨工业大学
- 工贸企业电脑绣花机安全操作规程
评论
0/150
提交评论