生产者消费者实现用c语言用物品1,物品2等来代替,用C语言编写程序:生产者和消费者之间实现同步与互斥问题...
满意答案
DHXX08122
2015.10.19
采纳率:49% 等级:8
已帮助:3664人
//整个程序以伪代码形式给出,当做一个提示吧,这样你同学就应该有思路了
//程序中有注释部分和需要他自己完善的部分,我给的是框架
//老师只是要求用C程序模拟这个机制来实现,就是通过你所学的知识模拟一个效果即可
//利用P,V操作使得在同一时刻,生产者和消费者只能有一个对存储区操作(即临界区)。
//如果两者同时对存储区操作,即同时取和生产的话,必定会有一个等待,当另一个完成操作后自己才会被唤醒。
//生产者在存储区满时不能再生产,进入等待,消费者同理
//完成同步互斥效果
//希望对你朋友有启发
/*----以下为代码部分-----*/
//定义全局变量
intempty=1;//信号量表示存储单元空,可以生产产品
intfull=0;//信号量表示存储单元空,不可以消费产品
//P操作
voidP(int&mutex)
{
*mutex--;
if(*mutex<0)
{
//当前进程挂起的程序实现
}
}
//V操作
voidV(int&mutex)
{
*mutex++;
if(*mutex<=0)
{
//唤醒等待中的进程程序实现
}
}
//生产者程序
voidproducer()
{
P(&empty);//若此时存储区空,则可以生产,否则程序挂起等待
//生产一个产品操作
V(&full);//通知消费者进程,可以取产品
}
//消费者程序
voidconsumer(){
P(&full);//若此时存储区不空,则可以取产品,否则消费者程序挂起等待
//取走一个产品操作
V(&empty);//通知生产者进程可以生产
}
//主函数
voidmain()
{
//分别调用生产者,消费者程序,顺序不限,因为已经完成信号量的同步,若发生同步问题就会等待
producer();
consumer();
consumer();
producer();
………………
}
00分享举报
生产者消费者实现用c语言用物品1,物品2等来代替,用C语言编写程序:生产者和消费者之间实现同步与互斥问题...相关推荐
- C语言 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和定价。
2021-08-08 The beginning of everything. 萌新一只 第一天开始写 可能程序会繁琐 希望大家指正 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和 ...
- java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......
导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...
- Go语言编程:使用条件变量Cond和channel通道实现多个生产者和消费者模型
如题,使用条件变量Cond和channel通道实现多个生产者和消费者模型.Go语言天生带有C语言的基因,很多东西和C与很像,但是用起来 绝对比C语言方便.今天用Go语言来实现下多消费者和生产者模型.如 ...
- 幼儿园语言活动包括哪几类_语段从语言三个方面-幼儿园语言教育的内容包含哪些请从三方面进行回答?幼儿园语言教育的 爱问知识人...
幼儿园语言教育目标有哪三个层次? 1.幼儿园语言教育的总目标 幼儿园语言教育总目标,是幼儿园语言教育任务要求的总和,即幼儿园三年 语言教育所期望的最终结果, 又叫终期目标.它是幼儿园教育总目标的一个组 ...
- C语言编写程序计算运费:f=p*w*s*(1-d)。(用switch语句实现)
C语言编写程序计算运费:f=pws*(1-d).(用switch语句实现) s<250km 没有折扣 250<=s<500 2%折扣 500<=s<1000 5%折扣 1 ...
- c语言编程题餐饮服务打分,求详细分析C语言题餐饮服务质量调查打分题和答案..._质量员考试_帮考网...
bangsaizhuo 新兵答主 11-09 TA获得超过6761个赞 二.填空题 1. ___变量__是指在程序运行过程中,值可以发生变化的量. 2.C语言是一种____区分_(区分/不区分)字母大 ...
- 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...
语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...
- C语言程序设计有哪几种结构,第章c语言程序设计的三种基本结构.ppt
第章c语言程序设计的三种基本结构 北京科技大学 计算机系 第2章 C语言程序设计 的三种基本结构 2.1 顺序结构程序设计 2.1.1 C语句 2.1.2 字符数据的输入与输出 2.1.3 格式输入与 ...
- 不以英语为中心,百种语言互译,FB开源首个单一多语言MT模型
机器之心报道 机器之心编辑部 Facebook AI 近日开源了多语言机器翻译模型 M2M-100,该模型不依赖以英语为中心的数据,可以实现 100 种语言之间的相互翻译. 机器翻译(MT)打破了人类 ...
- c语言为什么提供函数声明机制,通过实战理解C语言精要——函数篇
本文为作者原创,转载请注明出处,感谢您的阅读与分享,希望本文能让您有所收获. 前言 本篇博客是对C语言函数部分的重点内容和细枝末节通过实战得到的经验的总结精炼,不涵盖C语言函数的全部内容,所有提炼内容 ...
最新文章
- Ubuntu 12.04安装firefox 26中的flash plugin方法
- 金蝶中间件部署报栈溢出_京东618压测时自研中间件暴露出的问题,压测级别数十万/秒...
- Yenista光学发布新型无源器件测试平台CTP10
- C#设计模式之:抽象工厂模式与反射
- Silverlight学习笔记之页面跳转
- .net 插件式开发学习总结
- 图标字体iconfont的使用
- 重物码垛搬运机器人_节卡机器人:5G下的智慧物流——柔性生产物流系统
- pycham窗口显示多个编辑页面
- 人工智能(AI)真正的价值究竟何在?
- 揭秘阿里中台!一文看懂阿里推荐业务的两项利器 | 赠书
- java 判断是否包含中文_Java 判断字符串是否包含中文正则表达式
- 222 Count Complete Tree Nodes
- CCF201712-2 游戏(100分)【模拟】
- matplotlib常见问题解决方法
- wifi抓包/苹果电脑mac book抓wifi sniffer packet
- windows下面NTP服务器配置,局域网
- android系统的官网下载地址,Android安卓10.0系统官方正式版
- echarts 半圆形进度条
- 周爱民对提升程序员自身技术能力的建议