生产者完成生产后,进程是否有可能卡在消费者身上?

问题描述

我在考虑消费者和生产者的问题。假设您有两个信号量,一个用于跟踪空间数量(sem_t 空间),另一个用于跟踪缓冲区中的项目数量(sem_t 项目)。现在有多个生产者是消费者。

如果缓冲区为空(意味着没有物品),多个消费者进程将不得不等待生产者生产更多物品。假设生产者完成了最后一项(post(items))的生产,这样生产者就不再被调用了。

现在是否只有 1 个消费者能够传递信号量 (wait(items)),而由于生产者停止生产,其余的信号量仍将停留在 wait(items) 上?这是一种可能性吗?如何解决这个问题?

对不起,如果这没有任何意义。我只是在想这个问题。如果我能以任何方式澄清,请告诉我。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)