下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、-课程实验报告题 目 计算机操作系统理发师问题 姓 名 *学 号2021 *年级专业2021级*指导教师 * 华 201*年1*月 30 日一 题目假设有个理发店,只有一个理发师和N可供顾客等待理发的椅子,如果没有顾客,则理发师睡觉,如果有一个顾客进入理发店发现理发师在睡觉,则把他叫醒,试用信号量设计一个协调理发师和顾客的程序。二 PV操作伪代码C语言的伪代码实现:intwaiting=0;/等候理发的顾客数 intchairs=n;/为顾客准备的椅子数 semaphorecustomers=0,barbers=0,mute*=1; barber() while(TRUE);/理完一人,还有顾
2、客吗? P(cutomers);/假设无顾客,理发师睡眠 P(mute*);/进程互斥 waiting-=1;/等候顾客数少一个 V(barbers);/理发师去为一个顾客理发 V(mute*);/开放临界区 cut-hair();/正在理发customer() P(mute*);/进程互斥 if(waiting) waiting+=1;/等候顾客数加1 V(customers);/必要的话唤醒理发师 V(mute*);/开放临界区 P(barbers);/无理发师,顾客坐着养神 get-haircut();/一个顾客坐下等理/ elseV(mute*);/人满了,离开三 程序流程图顾客模块:
3、理发师模块:四 源程序的实现因为本人对C+的多线程库函数不了解,于是使用JAVA实现理发师问题,假设有5可供顾客理发的椅子:package .sw*y;import java.util.concurrent.Semaphore;/导入Semaphore,用于控制进程同步互斥的量。publicclass BarberShop staticintt = 0;/ 顾客staticintMA* = 5;/ 假设5可供顾客理发的椅子staticintbusy = 0;static Semaphore mute* = new Semaphore(1);/ 临界区互斥信号量(二进制信号量),相当于互斥锁。p
4、ublicstaticvoid main(String args) throws InterruptedE*ception BarberShop bar = new BarberShop();for (int i = 1; i <= 20; i+) / 假设一共有20个顾客来访new Thread(new Barber(bar, i).start();Thread.sleep(int) (400 - Math.random() * 300);/ 使得当前线程休眠 随机0-0.1spublicsynchronizedboolean isFull() if (t = MA*) returnt
5、rue;returnfalse;publicsynchronizedboolean isEmpty() if (t = 0) returntrue;returnfalse;publicsynchronizedboolean isBusy() if (busy = 1) returntrue;returnfalse;publicvoid Gobar(int inde*) throws InterruptedE*ception System.out.println("顾客 " + inde* + " 来了");t+;/ 判断是否满if (isFull() S
6、ystem.out.println("没有可供顾客等待的椅子了," + "顾客 " + inde* + " 离开了");t-; else if (busy = 1) System.out.println("顾客" + inde* + " 正在等待理发师");mute*.acquire();/ 信号量减操作,防止其他进程再进入synchronized (this) while (busy = 1) / 假设有人在理发,则等待wait();if (t = 1) System.out.println(
7、"现在理发店只有顾客" + inde* + ",理发师是清醒的");busy = 1;System.out.println("顾客" + inde* + " 正在理发");Thread.sleep(1000);System.out.println("顾客" + inde* + " 离开了");t-;mute*.release();/ 信号量加操作synchronized (this) busy = 0;notify();/ 唤醒if (t = 0) System.out.pr
8、intln("没有顾客了,理发师开场睡觉");class Barber implements Runnable BarberShop ob;intinde*;public Barber(BarberShop ob, int i) this.ob = ob;inde* = i;publicvoid run() / TODO Auto-generated method stubtry ob.Gobar(inde*); catch (InterruptedE*ception e) / TODO Auto-generated catch blocke.printStackTrace
9、();五 运行结果顾客 1 来了现在理发店只有顾客1,理发师是清醒的顾客1 正在理发顾客 2 来了顾客2 正在等待理发师顾客 3 来了顾客3 正在等待理发师顾客 4 来了顾客4 正在等待理发师顾客1 离开了顾客2 正在理发顾客 5 来了顾客5 正在等待理发师顾客 6 来了没有可供顾客等待的椅子了,顾客 6 离开了顾客 7 来了没有可供顾客等待的椅子了,顾客 7 离开了顾客 8 来了没有可供顾客等待的椅子了,顾客 8 离开了顾客2 离开了顾客3 正在理发顾客 9 来了顾客9 正在等待理发师顾客 10 来了没有可供顾客等待的椅子了,顾客 10 离开了顾客 11 来了没有可供顾客等待的椅子了,顾客
10、11 离开了顾客3 离开了顾客4 正在理发顾客 12 来了顾客12 正在等待理发师顾客 13 来了没有可供顾客等待的椅子了,顾客 13 离开了顾客 14 来了没有可供顾客等待的椅子了,顾客 14 离开了顾客 15 来了没有可供顾客等待的椅子了,顾客 15 离开了顾客4 离开了顾客5 正在理发顾客 16 来了顾客16 正在等待理发师顾客 17 来了没有可供顾客等待的椅子了,顾客 17 离开了顾客 18 来了没有可供顾客等待的椅子了,顾客 18 离开了顾客 19 来了没有可供顾客等待的椅子了,顾客 19 离开了顾客5 离开了顾客9 正在理发顾客 20 来了顾客20 正在等待理发师顾客9 离开了顾客12 正在理发顾客12 离开了顾客16 正在理发顾客16 离开了现在
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 17737.124-2026同轴通信电缆第1-124部分:电气试验方法漏泄电缆的耦合损耗试验
- T/ZGM 008-2025绿色产品评价 201×7凝胶型强碱性苯乙烯系阴离子交换树脂
- T/HNCAA 069-2025公路桥梁结构健康监测技术应用规程
- T/CIQA 67-2023“三同”产品 家用和类似用途电动洗衣机技术要求
- T/CAPSA 11202-2024生产安全事故应急响应标准文献元数据导则
- T/CSBME 090-2025车载医用X射线计算机体层摄影设备临床放射防护要求
- 2025~2026学年广东省河源市东源县人教版五年级上册数册中作业题【附答案】
- 2026学年湖南省醴陵市五年级语文期末提升竞赛挑战题(详细参考解析)详细答案和解析
- 2026学年云南省楚雄市五年级语文期末高分难点突破题(详细参考解析)详细答案和解析
- PHP初级面试题及详细答案(真实企业版)
- 2026国考行测真题及参考答案
- 智造未来-2026年智能建造技术与施工机器人应用全景
- 2026中国放射性废水处理用陶瓷超滤膜辐照稳定性加速测试报告
- 2026秋统编版(新教材)七年级道德与法治上册易错知识点梳理+分课填空自测练习题及答案
- 四上2-3《呼吸的变化》教学课件
- 2026年中盐榆林盐化有限公司秋季招聘笔试模拟试题及答案详解
- 2025年信息安全工程师考试真题及答案解析
- 2026年压力容器考试题库及答案
- BJS 202602 食品中伐地那非杂质30的测定
- 2026年广东省中考物理试卷附答案
- 2026年新闻记者职业资格考试新闻采编实务试卷及答案解析
评论
0/150
提交评论