2.3_8 多生产者-多消费者问题

2.3_8 多生产者-多消费者问题

实现思路

semaphore mutex=1;	//实现互斥访问盘子(缓冲区)
semaphore apple=0;	//盘子中有几个苹果
semaphore orange=0;	//盘子中有几个橘子
semaphore plate =1;	//盘子中还可以放多少个水果

dad(){
    while(1){
        准备一个苹果;
        P(plate);
        P(mutex);
        把苹果放入盘子;
        V(mutex);
        V(apple);
    }
}

mom(){
    while(1){
        准备一个橘子;
        P(plate);
        P(mutex);
        把橘子放入盘子;
        V(mutex);
        V(orange);
    }
}

daughter(){
    while(1){
        P(apple);
        P(mutex);
        从盘中取出苹果;
        V(mutex);
        V(apple);
        吃掉苹果;
    }
}

son(){
    while(1){
        P(orange);
        P(mutex);
        从盘中取出橘子;
        V(mutex);
        V(orange);
        吃掉苹橘子;
    }
}

知识回顾与重要考点

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络相关知识

关于作者:CSDN内容合伙人、技术专家, 从零开始做日活千万级APP。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、相关工具3.1 network profiler/ In…

休息日的思考与额外题——链表

文章目录 前言链表知识点 一、 92. 反转链表 II二、21. 合并两个有序链表总结 前言 一个本硕双非的小菜鸡,备战24年秋招,计划二刷完卡子哥的刷题计划,加油! 二刷决定精刷了,于是参加了卡子哥的刷题班,训练…

构建知识图谱:从技术到实战的完整指南

目录 一、概述二、知识图谱的基础理论定义与分类核心组成历史与发展 三、知识获取与预处理数据源选择数据清洗实体识别 四、知识表示方法知识表示模型RDFOWL属性图模型 本体构建关系提取与表示 五、知识图谱构建技术图数据库选择Neo4jArangoDB 构建流程数据预处理实体关系识别图…

详谈掼蛋两大类牌型

掼蛋中的10种牌型,总体上可以分为炸弹牌型系列和普通牌型两大类。炸弹牌型系列包括天王炸、同花顺和多头炸3大类;普通牌型系列包括单张、对子、三同张、三带二、顺子、三连对、连三张等7种牌型。 一、两类牌型的区别 炸弹牌型系列和普通牌型系列两大类有…

信创条件下的运维思考-驱动数字化转型,塑造企业未来之篇章

2024-01-14 12:59 发布于:山西省 运维信创:驱动数字化转型,塑造企业未来之篇章 随着信息技术的迅猛发展,数字化转型已成为企业生存和发展的必由之路。在数字化转型的过程中,运维作为企业IT的重要组成部分&#xff…

【安装指南】HBuilder X 下载、安装详细教程

目录 🌺1. 概述 🌻2. HBuilder X 安装包下载 🌼3. 安装详细教程 🌺1. 概述 HBuilder X 是一款由DCloud开发的基于Electron框架的集成开发环境(IDE),主要用于Web和移动应用程序的开发。以下是…

【自媒体实战】——公众号排版工具调研

公众号排版工具 壹伴 地址:https://yiban.io/ 网站 壹伴 (https://yiban.io/) 主要提供一个高效的微信编辑器,专门服务于公众号运营者。它包括了一系列工具和功能,旨在帮助用户更便捷地进行文章排版、图片编辑、素材寻找和消息回复等操作。…

web渗透测试-Server2225-(环境+解析)

1、访问目标IP,打开第1题,根据页面提示,将获取的flag提交。提交格式:flag{xxx}(提交花括号里面的字段) 给出了如上代码,很明显,flag在flag.php文件内。 REQUEST方法既可以接受GET方法,也可以接受POST方法,方便起见,我们选择GET方法。 eval函数 eval() 函数把字符串…

如何实现无公网ip远程SSH连接家中本地的树莓派

文章目录 如何通过 SSH 连接到树莓派步骤1. 在 Raspberry Pi 上启用 SSH步骤2. 查找树莓派的 IP 地址步骤3. SSH 到你的树莓派步骤 4. 在任何地点访问家中的树莓派4.1 安装 Cpolar4.2 cpolar进行token认证4.3 配置cpolar服务开机自启动4.4 查看映射到公网的隧道地址4.5 ssh公网…

防御保护第四次作业

防火墙的智能选路 就近选路 --- 我们希望在访问不同运营商的服务器是,通过对应运营商的链路。这样可以高 通信效率,避免绕路。 策略路由 -- PBR 传统的路由,仅基于数据包中的目标IP地址查找路由表。仅关心其目标,所以&#…

大模型:合成数据、安全挑战与知识注入

在如今这个快速发展的AI时代,大语言模型(LLM)的研究论文数量呈指数级增长,几乎到了人力无法一一阅读和消化的地步。然而,对这些研究成果的归纳和总结至关重要,因为它们描绘了LLM领域的未来发展轮廓。在近期…

变相体罚学生包括什么

有时候由于种种原因,一些老师可能会采用变相体罚的方式来对待学生,不仅会伤害学生的身心健康,还会影响学生的学习积极性和成绩。什么是变相体罚呢? 变相体罚是指不采用直接的身体惩罚方式,而是采用其他方式来惩罚学生…

3、css设置样式总结、节点、节点之间关系、创建元素的方式、BOM

一、css设置样式的方式总结: 对象.style.css属性 对象.className ‘’ 会覆盖原来的类 对象.setAttribut(‘style’,‘css样式’) 对象.setAttribute(‘class’,‘类名’) 对象.style.setProperty(css属性名,css属性值) 对象.style.cssText “css样式表” …

JMeter性能测试实战

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 &#x1…

基于YOLOv7算法和FLIR数据集的高精度实时红外行人目标检测系统(PyTorch+Pyside6+YOLOv7)

摘要:基于YOLOv7算法和FLIR数据集的高精度实时红外行人目标检测系统可用于日常生活中检测与定位自行车、汽车、狗和行人目标,此系统可完成对输入图片、视频、文件夹以及摄像头方式的目标检测与识别,同时本系统还支持检测结果可视化与导出。本…

数据库基础01-mysql和SQL语句

目录 一、关系型数据库 1.什么是关系型数据库 2.主要优点 二、SQL语句 1.简介: 2.SQL通用语法 3.SQL语法分类 4.DDL (1)查询库 (2)创建库 (3)删除库 (4)使用库…

Qt应用软件【协议篇】Modbus详细介绍

文章目录 概述Modbus 485协议概述在工业自动化中的应用 通信模式数据模型功能码 Modbus RTU示例 1:读取保持寄存器示例 2:写入单个线圈示例 3:写入多个保持寄存器报文传输 Modbus ASCII报文示例报文传输 Modbus TCP报文示例报文传输 概述 在…

在中国如何方便地使用GPT Plus?

一、背景 通过魔法,顺利登录ChatGPT,准备升级GPT Plus时,发现需要国外信用卡才能支付,这对大多数中国人来说是不方便的。在google搜索解决方案时,发现了WildCard平台,可以一键升级 GPT Plus (GPT-4)。将基…

浅谈隔离放大器

浅谈隔离放大器 定义:隔离放大器是将输入的电量信号或物理量信号通过一种技术手段处理后,隔离输出一组模拟量信号,这组模拟量信号是以标准的4-20mA/0-20mA/0-10mA/0-10V/0-5V/1-5V/2-10V/0-2.5V/0-20mA/0-10mA/0-10V/0-100mV/0-5V等信号,以便控制系统及仪器仪表设备…

【C语言】位操作符详解

目录 1、按位与( & ) 2、按位或( | ) 3.按位异或( ^ ) C语言中的位操作符有以下: & | ^//按位与 //按位或 //按位异或 位运算符是计算两者之间的补码,然后得到的是计算后补…