多生产者和多消费者问题
问题背景

有一个盘子
- 每次盘子中只能放入一种水果
爸爸向盘子中放苹果
- 女儿取苹果
妈妈向盘子中放橘子
- 儿子取橘子
思路分析
-
关系分析
-
找出题目中的各个进程,分析他们的同步、互斥关系
-
同步关系
- 父亲放入苹果后,女儿才能取
- 母亲放入橘子后,儿子才能取
- 盘子为空时,父母才能放入水果
-
互斥关系
- 对盘子的访问要互斥进行
-
-
-
整理思路
image.png
-
根据各进程的操作流程确定PV操作的大致顺序
- 互斥为在临界区前后分别PV
- 同步为前V后P
-
-
具体实现
-
父亲进程
image.png
-
母亲进程
image.png
-
女儿进程
image.png
-
儿子进程
image.png
-
设置信号量
image.png
-
网友评论