问答题

试修改下面消费者生产者问题解法中的错误
Producer:
Begin
Repeat

Produce an item in nextp;
Wait(mutex);
Wait(empty);
Buffer(in):=nextp;
(in:=(in+1)mod n;)
Signal(mutex);
Until false;
End
Consumer:
Begin
Repeat
Wait(mutex);
Wait(full):
Nextc:=buffer(out);
Out:=out+1;
Signal(mutex);
Consume item in nextc;
Until false;
End

【参考答案】

Producer:
Begin
Repeat
Produce an item in nex......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)