用条件变量等待时推荐写成 while (!ready) cond_wait(...) 而不是 if,原因是?

操作系统

  1. A.while 比 if 更快,编译器会优化循环
  2. B.可能虚假唤醒或条件已被别的线程改变,需重检
  3. C.if 会编译报错,条件变量 API 只接受循环
  4. D.条件变量只能在循环中使用,这是语言规定