0

在使用监视器解决消费者/生产者问题的常见模式中,为什么总是使用 notify/notifyall 语句,即使只有当数组中的元素数量从零变为一或从 n 变为 n-1 时才使用它才有意义。以几乎所有文献中描述的方式,它最终导致相当大比例的通知调用最终产生零效应,这意味着只是浪费资源。或者我在这里错过了一些大事?

4

1 回答 1

0

好吧,编写这样的模式比每次都检查数组更容易。此外,notify all 不会浪费资源。我认为,当没有线程等待信号时,自己制作 if 语句与调用 notify/notifyAll 应该是一样的。我想,优化是在引擎盖下进行的。

于 2016-01-18T23:09:55.067 回答