我正在尝试看看如何解决带缓冲区的有界缓冲区问题,但是在我们有多个生产者/消费者的地方,生产者可以生产P个项目,而消费者可以消费C个项目。
我已经弄清楚了如何与多个生产者/消费者进行以下操作。我不确定如何更改它,以便他们能够消耗/生产C和P数量的项目。
semaphore full = 0
semaphore empty = n
semaphore mutex = 1
//producer
while (1) {
wait(empty);
wait(mutex);
//put in buffer
signal(mutex);
signal(full);
//consumer
while (1) {
wait(full);
wait(mutex);
//remove from buffer
signal(mutex);
signal(empty);
有什么想法吗?