linux下的c语言编程步骤 在生产者 - 消费者问题中,如果缺少了signal(full) 或signal(empty) ,对执行结果将会有何影响?

在生产者 - 消费者问题中,如果缺少了signal(full) 或signal(empty) ,对执行结果将会有何影响?如果signal(full)丢失,则表示自第一个生产者进程以来,信号量full值

在生产者 - 消费者问题中,如果缺少了signal(full) 或signal(empty) ,对执行结果将会有何影响?

如果signal(full)丢失,则表示自第一个生产者进程以来,信号量full值未更改。

即使缓冲池产品已满,full值仍为0,因此消费者进程在执行wait(full)]时认为缓冲池为空,无法获取产品,因此消费者进程被忽略总是在等待。

如果缺少信号(空),则在生产者进程用产品填充n个缓冲区后,使用者进程将开始从中提取产品。此时,empty=0,full=n,然后每次使用者进程获取产品时,空值都不会更改

直到缓冲池为空,空值也为0。即使缓冲池中有n个空缓冲区,生产者进程也必须

返回缓冲池产品发布也会被阻止,因为应用程序无法到达空缓冲区。