标签: java multithreading producer-consumer
请举例说明发生饥饿的生产者消费者情形。
答案 0 :(得分:0)
如果正确编码的生产者-消费者问题始终是无饥饿的。
这种安排不会导致饥饿。
但是,如果您引入如下错误:
在某些情况下,消费者不会将先前消耗的缓冲区返回空缓冲区队列,而是继续等待下一个准备使用的缓冲区准备好消耗。
或者生产者在某些情况下没有将生产的缓冲区返回到就绪缓冲区队列,而是继续等待空缓冲区产生。
然后最终这种情况将导致饥饿。
这种“等待缓冲区等待”的情况可能导致饥饿。