解:
int A=1;
int B=0;
int C=0;
mutex=1;
main()
{ processa();
processb();
processc();
}
processa()
{
while(1)
{
P(A);
P(mutex);
将物品放入容器;
if(放入的是甲){
V(B);
}else {
V(C);
}
}
}
processb()
{
while(1)
{
P(B);
从容器中取出甲;
V(mutex);
V(A);
}
}
processc()
{
while(1)
{
P(C);
从容器中取出乙;
V(mutex);
V(A);
}
}