生产者-消费者问题

news/2025/9/29 11:43:29/文章来源:https://www.cnblogs.com/jimGraymane/p/19118461

生产者-消费者问题

系统中有一组生产者进程和一组消费者进程,生产者进程每次生一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用

生产者和消费者共享一个初始为空,大小为n的缓冲区

缓冲区没有满的时候,生产者才能把产品放入缓冲区,否则必须等待。

只有缓冲区没空的时候,消费者才能从中取出产品,否则必须等待。

缓冲区是一种临界资源,各进程必须互斥访问

semaphore mutex=1;//互斥信号量,实现对缓冲区的互斥访问
semaphore empty=n;//同步信号量,代表空闲缓冲区的数量
semaphore full=0;//同步信号量,代表产品的数量
producer(){while(1){生产一个产品;P(empty);//消耗一个空闲缓冲区P(mutex);放入;V(mutex);V(full);//消耗一个非空缓冲区,代表增加了一个产品}
}
consumer(){while(1){P(full);//消耗一个产品P(mutex);取出;V(mutex);V(empty);//增加一个空闲缓冲区使用产品;}
}

互斥的P操作,一定要在实现同步的P操作之后,顺序不能颠倒

但是V操作可以随意交换顺序,不会导致进程阻塞

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921773.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Manim实现闪电特效

本文将详细介绍如何使用Manim框架来实现一个逼真的闪电特效。 1. 实现原理 闪电特效通过LightningAnimation类实现,该类继承自Manim的基础Animation类, 主要基于以下几个核心原理: 1.1. 折线生成与随机偏移 闪电的基…

WordPress会员密码查看seo站内优化站外优化

WPF开源的UI框架有很多,如HandyControl、MahApps.Metro、Xceed Extended WPF Toolkit™、Modern UI for WPF (MUI)、Layui-WPF、MaterialDesignInXamlToolkit、等等,今天小编带大家认识一款比较常用的kaiyuanUI---WPF UI,这款ui框架美观现代化,用起来也超级方便, 界面展示…

网站优化排名易下拉系统实训网站建设的总结

这篇文章给出现在最方便的MODIS数据下载方法。 传统的方式通过访问NASA的数据中心:https://ladsweb.modaps.eosdis.nasa.gov/ 具体方法可以参考我前面的一篇文章:https://blog.csdn.net/qq_39085138/article/details/116302600 但是可以发现如果想要处理…

QAction的使用

QAction 配合 QMenu 使用 可以通过 AddAction 加入 QMenuauto action = new QAction("Test");action->setCheckable(true);auto menu = new QMenu(this);menu->addAction(action);setContextMenuPolic…

Gitee:中国开发者生态的数字化转型加速器

Gitee:中国开发者生态的数字化转型加速器 在数字化转型浪潮席卷全球的当下,中国开发者正迎来前所未有的机遇与挑战。作为本土领先的代码托管平台,Gitee凭借其独特的本土化优势、全流程工具链和坚实的安全架构,正在…

flow.tcl

setenv NETLIST_VER VHDL0113_1353 ##setenv NETLIST_VER VHDL1224_1501source ../scr/init.tcl##global clearGlobalNets globalNetConnect VCC1V8 -type pgpin -pin VDD -all -override -verbose -netlistOverride …

大模型提示词技巧Prompt Engineering,看这一篇就够了 - 知乎

让模型听话,按照要求思考,关键就在Prompt。 前言 你在写prompt时候,是不是总觉得大模型它不听话。要么答非所问、要么一堆废话。扒开思考过程仔细阅读时而觉得它聪明绝顶,时而又觉得它愚蠢至极。明明已经对了怎么又…

Pandawiki接入飞书机器人全攻略:打造企业智能问答新体验

Pandawiki接入飞书机器人全攻略:打造企业智能问答新体验在数字化办公日益普及的今天,企业对于高效沟通和知识管理的需求愈发迫切。Pandawiki作为一款强大的智能知识库系统,通过接入飞书机器人,能够为企业带来前所未…

8月4号建设部网站创保网app下载

2011-09-01 17:35 2人阅读 评论(0) 收藏 编辑 删除 今天有个工作是导出一个函数给脚本用 我自已先要测一下 先要客户端发送一个消息给服务器 看了下C部分的代码,如下 "def onNetMessage(self,playerID, msgName,msgParam):\n" //客户端调用服务器脚本 " …

常见的网站空间有哪些上市公司查询网站

参考: Goroutine 究竟可以开多少? 一、先说结论: 能开多少个协程,取决于单个协程处理方法所占用的CPU和内存资源(也就是看你计算机运行的应用程序的具体代码逻辑)。 二、具体来说: 如果是C…

sg.测试 PySimpleGUI 取值方法

改进后的代码和注释 import PySimpleGUI as sglayout = [[sg.T(测试 PySimpleGUI 取值方法)],[sg.T(输入:), sg.I(key=-A-, size=33)],[sg.B(好的), sg.B(取消)],[sg.Output(key=-OUT-, size=(39, 10))], ]window = s…

剥开参数看本质:2025 年手机性能与处理器深度解析 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

WPF 深入系列.2.布局体系.布局控件.StackPanel

WPF 深入系列.2.布局体系.布局控件.StackPanelpre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &q…

HT-SBTC-2-10L 是成都恒利泰推出的 5–1000 MHz

HT-SBTC-2-10L 是成都恒利泰推出的 5–1000 MHzHT-SBTC-2-10L 是成都恒利泰推出的 5–1000 MHz 表贴一分二功分器,插损仅 1.3 dB,可原位替换 MINI SBTC-2-10L,价格低、交期短,无需改板。已批量用于 5G 小基站、直放…

Gitee DevOps:本土化基因驱动中国企业研发效能革命

Gitee DevOps:本土化基因驱动中国企业研发效能革命 在全球数字化转型加速的背景下,软件开发效率已成为决定企业生死存亡的关键因素。Gitee DevOps作为国内研发管理领域的标杆平台,凭借其深刻的本土化理解和全链路自…

广东外贸型网站建设建设网站以什么为导向

一、通过which命令查找 $ which nginx /usr/sbin/nginxwhich命令会在系统环境变量PATH中查找nginx可执行文件,并返回路径。因此,通过which命令可以很容易地找到系统中nginx的安装位置。 二、通过whereis命令查找 $ whereis nginx nginx: /usr/sbin/ng…

快速查看Navicat数据库连接密码实战

1、导出密码:2、解密: 解密地址 3、解密成功,验证:

华为发布开源超节点架构,以开放战略叩响AI算力生态变局 - 指南

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

老旧系统接入统一认证

前言 为提高人员效率,近期为已有的一些业务系统接入了统一认证,这些系统的技术栈都非常老,主要包括 C/S 架构以及一小部分 B/S 架构的。统一认证系统开放了基于 HTTP 的接口,业务系统通过与接口交互实现统一认证登…

每周读书与学习-初识JMeter 元件(三)

每周读书与学习是由清华大学出版社出版的《JMeter核心技术、性能测试与性能分析》一书的作者推出,分享作者多年的IT从业经历,希望对很多计算机科学技术IT类专业毕业生以及IT从业者有所帮助。 1、取样器 在Jmeter中,…