医院排队候诊模型

该博客探讨了医院候诊问题的模拟模型,采用生产者消费者模型解决医生和病人之间的协调。模型假设包括病人病情优先级、医生空闲状态等。解决方案通过创建医生线程和病人线程,利用C++11的多线程特性实现队列操作,确保线程安全,并给出程序设计和运行结果。
摘要由CSDN通过智能技术生成


医院候诊问题

问题描述:

医院某科室,有医生m名

现有病人n名,先后到达

病人病情轻重各有不同(分k级),重的先就诊;病症相同的,先来的先就诊。

 

模型假设:

1.  病人挂完号后进入对应的科室,每天病人数目随机

2.  每个科室有一定数量的医生,一开始的时候,所有医生都空闲(即可以接待病人)。

3.  每个科室需要安排一位医生或者护士,专门判断一下新来的病人病情的严重情况,这个判断不需要太多时间,给出大致的情况即可。给出严重情况后,再排队。

4.  排队的病人按照次序,依次随机分配给正在空闲的医生。如果没有空闲的医生,那么就所有病人都要等待;反之,如果没有病人,那么所有医生保持空闲状态。

5.  一位医生每次只能看一个病人,每次看病需要一定时间。

6.  医生上班时间有限,下班后不再看病。

 

解决方案:

生产者消费者模型:

1. 设置一个病人的优先队列,按照优先级由高到低,分段排队,最开头的是优先级最高的病人;如果优先级相同,那么按照先来后到的顺序排队。

2. 程序模拟医院排队就诊,主线程一开始生成m个“医生”线程,代表有m个医生,每一个线程安排一位医生对象;另开一个“病人”线程,用来轮询是否有新

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值