有多个生产者/消费者生产/消费多个过程的绑定缓冲区

时间:2019-03-03 23:29:45

标签: c concurrency operating-system monitor

我正在尝试看看如何解决带缓冲区的有界缓冲区问题,但是在我们有多个生产者/消费者的地方,生产者可以生产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);

有什么想法吗?

0 个答案:

没有答案
相关问题