我们为什么不检查信号产生器而不是消费者的条件变量?

时间:2018-07-09 08:11:01

标签: locking signals condition-variable

据我所知,消费者在等待信号时要检查条件变量。

Consumer:
lock.Lock()
while(condition) {
    cond.Wait()
}
lock.Unlock()

Producer:
lock.Lock()
changeCondition()
cond.Signal() or cond.Broadcast()
lock.Unlock()

为什么不能:

Consumer:
lock.Lock()
cond.Wait()
lock.Unlock()

Producer:
lock.Lock()
changeCondition()
if(condition) {
    cond.Signal() or cond.Broadcast()
}
lock.Unlock()

0 个答案:

没有答案