条件变量为什么要配合互斥锁使用?虚假唤醒是什么?如何避免?