条件变量中notifyone(或signal)和notifyall(或broadcast)的区别是什么?选择不同方式时需要考虑哪些因素?
考察说明
考察对唤醒策略差异及其适用场景的理解
回答思路
- 说明notifyone只唤醒一个等待线程,notifyall唤醒所有等待线程
- 解释notifyone可能造成唤醒线程选择不当导致死锁或饥饿
- 说明当条件可同时满足多个线程或存在多个不同条件等待时使用notifyall更安全
- 结合具体场景说明选择依据
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。