题目:
有一个盘子,可以放5个水果(苹果or桔子)。父亲每次向盘子随机放入一个水果(苹果or桔子),父亲放入水果的次数不少于11次。儿子只吃桔子,女儿只吃苹果。请编程使用信号量机制模拟解决此进程同步问题。打印信息包括盘子的情况、调度的情况以及父亲、儿子或者女儿执行的操作。
思路描述:
构造一个循环链表来模拟缓冲区的队列,两个移动的指针,一个代表儿子和女儿,一个代表父亲。当出现空盘时阻塞儿子和女儿,当盘子里出现了儿子和女儿要吃的的东西的时候唤醒他们,当盘子满了的时候,阻塞父亲,因为量比较小就没有构造阻塞队列了,直接用了个标志数组。
<span style="font-size:18px;">#include<stdio.h>
#include<time.h>