生产者消费者 读者写者
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif)
对于生产者消费者这个问题,我们可以用生活中一个简单的例子来说明:
桌子上有个盘子,一个人往盘子里面放苹果,一个人从盘子里面拿走苹果,放苹果的人相当于生产者,拿走苹果的人相当于消费者,而盘子就相当于一个生产场所。如果我们要保证拿苹果的人一直都有苹果拿,那就要让放苹果的人一直放,而且要比拿苹果的人快一点。当盘子满的时候放苹果的人就要等着拿苹果的人把苹果拿走,等盘子里有了位置,就可以继续放苹果。如果我们要求每次只能放一个苹果,拿苹果的人每次也只能拿一个苹果,而放苹果和拿苹果的人都不只是一个人,这样的话,放苹果的人和放苹果的人之间就会产生互斥关系,一个人放苹果的时候,其他人就不能放,拿苹果的人也是一样,一个人拿苹果的时候,其他人就不能拿。而拿苹果的人和放苹果的人也有互斥关系和同步关系,放苹果的人放了苹果之后,要通知拿苹果的人来拿苹果,否则盘子满了,放苹果的人就要等待。
满
屏
幕
的
苹
果
我
也
是
醉
醉
的
好了,不说苹果了,我们来官方一点啦
生产者要做的就是生产数据,消费者要做的是读取数据并且要拿走。而且生产者和消费者是在一个环形缓冲区进行的,和我在管道那篇博客中写的一样
生产者消费者之间的关系
![](/assets/blank.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/mad.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/doubt.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/doubt.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/cute.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/laugh.gif)
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/doubt.gif)
生产者消费者 读者写者相关推荐
- 操作系统 | PV操作七大经典问题 生产者消费者 读者写者 哲学家进餐 理发师理发睡觉 和尚打水 吸烟者 吃水果
一.生产者消费者问题 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案 ...
- 进程、线程知识点总结和同步(消费者生产者,读者写者三类问题)、互斥、异步、并发、并行、死锁、活锁的总结
转自:http://www.cnblogs.com/kubixuesheng/p/4355786.html 进程:是个动态的概念,指的是一个静态的程序对某个数据集的一次运行活动,而程序是静态的概念,是 ...
- 操作系统(四) | 经典进程的同步问题(生产者--消费者问题、哲学家进餐问题、读者--写者问题)
文章目录 生产者--消费者问题 分析 实现 哲学家进餐问题 方法一:最多4人同时拿左筷子,最终保证一人能进餐 方法二:同时给左右筷子 解法1:AND信号量 解法2:信号量保护机制 方法三:让奇数先左后 ...
- 2.3.6 操作系统之进程同步与互斥经典问题(生产者-消费者问题、多生产者-多消费者问题、吸烟者问题、读者-写者问题、哲学家进餐问题)
文章目录 0.前言 1.生产者-消费者问题 (1)问题描述 (2)问题分析 (3)如何实现? (4)实现互斥的P操作一定要在实现同步的P操作之后 (5)知识回顾与重要考点 2.多生产者-多消费者问题 ...
- 操作系统:经典进程同步问题 之 生产者-消费者问题、读者-写者问题、哲学家进餐问题
在进程同步中,经典的同步问题有:生产者-消费者问题.读者-写者问题.哲学家进餐问题. 一.生产者与消费者问题: 问题描述:使用一个缓冲区来保存物品,只有缓冲区没有满,生产者才可以放入物品:只有缓冲区不 ...
- 模拟生产者-消费者问题和读者-写者问题
生产者-消费者问题 一组生产者进程生产产品给一组消费者进程消费.一个有n个缓冲区的缓冲池,生产者一次向一个缓冲区中投入消息,消费者从一个缓冲区中取得.生产者--消费者问题实际上是相互合作进程关系的一种 ...
- 生产者消费者问题、读者写者问题、哲学家问题细致讲解
1.生产者消费者问题 ①系统中有一组生产者进程和一组消费者进程,生产者进程每次生产一个产品放入缓冲区,消费者进程每次从缓冲区中取出一个产品并使用.[注:这里的"产品"理解为某种数据 ...
- java 读者写者_Java实现生产者消费者问题与读者写者问题详解
1.生产者消费者问题 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品.解决生产者/消费者问题的方法可分为两 ...
- java实现带界面的生产者消费者_Java实现生产者消费者问题与读者写者问题
1.生产者消费者问题 生产者消费者问题是研究多线程程序时绕不开的经典问题之一,它描述是有一块缓冲区作为仓库,生产者可以将产品放入仓库,消费者则可以从仓库中取走产品.解决生产者/消费者问题的方法可分为两 ...
最新文章
- CSS+HTML大白
- 29岁当上北大博导,她成2019年最年轻杰青建议资助人之一
- python分析犯罪数据_使用 SparkSQL 分析纽约市犯罪数据
- Go中对两个 nil 进行比较的结果是什么?
- centos7使用记录
- 【转】关于“Please install at least one language pack”的详
- asp英语是什么意思_如何在ASP.NET Core中使用JSON Patch
- 定义工作,解读自我——IT帮2019年2月线下活动回顾
- 5. soapui 测试
- 韩顺平java30天Utils包下的工具类
- 电脑重装系统虚拟机安装xp的教程
- chm打不开解决办法
- 手动设置ip 访问内网地址
- Class Not Found 的错误解决
- CSAPP第四章家庭作业参考答案
- 持久性连接和非持久性连接
- P1162 填图颜色 洛谷(BFS的简单应用)
- 测试nfs文件读写速度
- 从纪念碑谷的收益看小而美的游戏的盈利困境
- 【激光slam仿真】启动gazebo仿真环境报错[spawn_model-4] process has died