我想知道如何解决生产者/消费者问题,但使用 2 个不同的消费者,我还需要知道如何使用严格交替来解决它。
我为 1 个生产者和 1 个消费者做了以下算法
producer()
{
while(true)
{
if i == N //full buffer
turn = 1
while turn <> 0
{
// nothing
}
produceitem(&item)//produce the item
insertitem(item, buffer)//insert the item in the buffer
turn = 1
//process zone
}
}
consumer()
{
while(true)
{
if i == 0 //empty buffer
turn = 0
while turn <> 1
{
// nothing
}
consumeitem(&item)
deleteitem(buffer)//erase the item from buffer
turn = 0
//process zone
}
}
我想知道使用那种“伪代码”来解决与 2 个消费者相同的问题(如果最后一个问题还可以的话)。