条件变量为什么必须和互斥锁、while 条件检查一起使用?
条件变量表示“状态可能变化”的通知,不保存业务条件本身;等待操作会原子释放互斥锁并睡眠,醒来后重新持锁。由于伪唤醒、多个消费者和状态被他人抢先改变,必须在 while 中再次检查谓词。
Question Bank
按知识、方向与难度筛选;每道题都有分层回答和工程追问。
条件变量表示“状态可能变化”的通知,不保存业务条件本身;等待操作会原子释放互斥锁并睡眠,醒来后重新持锁。由于伪唤醒、多个消费者和状态被他人抢先改变,必须在 while 中再次检查谓词。