生产者消费者问题

来源:百度知道 编辑:UC知道 时间:2024/05/23 11:16:32
在生产者消费者问题中,如果缺少了signal(full)或signal(empty),对执行结果将会有何影响?
如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,结果将会如何?

如果将两个wait操作即wait(full)和wait(mutex)互换位置,或者将signal(mutex)与signal(full)互换位置,当缓冲区存满K件产品时。生产者又生产了一件产品,它欲向缓冲器存放时将在empty上等待,但它已经占有了使用缓冲器的权利。这时消费者要取产品时将停留在mutex上得不到使用缓冲器的权利,导致生产者等待消费者取走产品,而消费者却在等待生产者释放使用缓冲器的权利,这种相互等待永远结束不了。因此进程将会发生死锁。