剑桥大学读研要多久:线程同步与互斥问题

来源:百度文库 编辑:神马品牌网 时间:2024/04/30 14:45:26
题目:
父亲、儿子、女儿三个人和一个盘子,当盘子空时,父亲往盘中随机放苹果或香蕉,儿子只从盘中拿苹果,女儿只从盘中拿香蕉。
请用P,V原语来实现线程同步于互斥。
哪位高手能赐教下,小弟将感激涕零……

初始化:
apple=0;
banana=0;
empty=1;

父亲:
for (;;)
{
P(empty);
if ((rand()%2) == 0)
{
//放苹果
V(apple);
}
else
{
//放香蕉
V(banana);
}
}

儿子:
for (;;)
{
P(apple);
//拿苹果
V(empty);
}

女儿:
for (;;)
{
P(banana);
//拿香蕉
V(empty);
}