SO中文参考
首页
(current)
程序语言
c
java
python
c++
go
javascript
swift
c#
操作系统
linux
ubuntu
centos
unix
数据库
oracle
mysql
mongodb
postgresql
框架
node.js
angular
react-native
avalon
django
twisted
hadoop
.net
移动开发
android
ios
搜索
生产者消费者问题如何发生饥饿
问题描述
投票:-4
回答:1
请举例说明饥饿发生的生产者消费者情景。
java
multithreading
producer-consumer
1个回答
0
投票
如果正确编码的生产者 - 消费者问题总是免于饥饿。
消费者阻塞直到有准备好的缓冲消耗。
生产者阻塞,直到产生空的缓冲区。
生成器立即生成移动缓冲区到就绪缓冲区队列。
消费者立即消耗移动缓冲区到空缓冲区队列。
这种安排不会导致饥饿。
但是如果你引入了一个类似的bug:
某些条件下的消费者没有将先前消耗的缓冲区返回到空缓冲区队列并继续等待准备好消耗的下一个就绪缓冲区。
或者生产者在某些条件下没有将生成的缓冲区返回到就绪缓冲区队列并继续等待空缓冲区生成。
那么最终这种情况会导致饥饿。
这种“等待保持缓冲”的情况可能导致饥饿。
最新问题
如何修复数据不显示在页面但出现在网络预览中的问题
kinit:获取初始凭据时预身份验证失败
使用Python编程模型V2的Azure Durable Function不调用activity_trigger
FastAPI Uvicorn 工作人员的问题 |只有一名工作人员正在处理该请求
如何计算列表列行之间的公共元素
从QDialog中引发一个可以移动的子窗口(QWidget)?
渲染进程和JavaScript引擎之间有什么关系?
对 Google 表格中的区域进行排序
尝试使用 API 从 Facebook 页面向 Facebook 用户发送消息时出错
为什么我的公共 IP 地址每次新连接都会改变?
引导验证错误导致表单对齐问题
Ctypes方法指定弹出窗口的位置(Python)
使用 Branch.io 自定义 URL 方案中的路径变量?
何时使用 ReadOnlySpan<T> 与显式/重载类型
Django的crispy-form,表单中的数据不保存在数据库中
如何解决 TypeError: Cannot conversion undefined or null to object with node.Js
我有一个变量,我希望程序不断检查它的值
具有独占字段的 Rust 记录结构
jgroups ActiveMQ Artemis 的“java.lang.NoSuchMethodError”
SQL 查询返回不需要的第一行
© www.soinside.com 2019 - 2024. All rights reserved.