生成者消费者模式,如何避免消费者一直处于饥饿状态
2016-11-27 19:45
447 查看
如果消费者的速度更快,那么消费者总是处于饥饿状态,队列总是处于空状态,生产者生产一个元素立刻就唤醒消费者消耗掉了,有效的队列容量其实只有1,导致消费者每次消费的都是队列中唯一一个元素,每次消费完都处于等待状态。
相反,如果生产者更快,则队列总是处于满状态,消费者总是消费队列中最旧的元素,导致生产者每次生产一个元素后又处于等待状态。
如何避免这种每生产或消费一个元素,生产者或消费者线程等待和激活状态频繁的切换呢?
相反,如果生产者更快,则队列总是处于满状态,消费者总是消费队列中最旧的元素,导致生产者每次生产一个元素后又处于等待状态。
如何避免这种每生产或消费一个元素,生产者或消费者线程等待和激活状态频繁的切换呢?
相关文章推荐
- [SharePoint 2007]如何解决上传InfoPath表单时一直处于正在安装状态的问题
- 如何解决hadoop2.2一直处于安全模式
- [SharePoint 2007]如何解决上传InfoPath表单时一直处于正在安装状态的问题
- 如何解决User Profile Synchronization Service一直处于“正在启动”状态
- 一 spark on yarn cluster模式提交作业,一直处于ACCEPTED状态,改了Client模式后就正常了
- 如何 解决 word2013 启动后 文档一直处于最小化状态?
- 如何让自己的工作状态一直处于饱满??
- winXP的系统如何避免他人在不需要密码的情况进入安全模式
- 如何随时处于就绪状态?
- [VB.NET]VB2005,DataGridView如何设置当前的单元格里的内容处于编辑状态.
- asp.net 如何让DropDownList的某一项处于选中状态
- 部署过程中,部署状态一直处于retracting or deploying的处理方法
- 如何让情绪长时间处于巅峰状态?
- Excel中,如何在cell处于编辑状态时,对其用代码赋值
- c# 如何获取键盘和鼠标处于空闲状态的时间
- 如何停止处于stopping状态的windows service(SC)
- IE浏览器内容加载完毕,但进度条加载很慢/IE进度条一直loading总处于未完成状态的问题
- vc++如何使复选框处于选中状态
- 在RFT中如何等待浏览器处于Ready状态?
- 如何设置提交后让页面处于等待状态