【问题标题】:Does waiting on a mutex, condition variable or I/O automatically yield() the thread?等待互斥体、条件变量或 I/O 是否会自动 yield() 线程?
【发布时间】:2013-01-17 02:43:49
【问题描述】:

这似乎很简单,但只是想检查这是否得到保证(在 Linux 上)。在满足等待条件之前,线程是否被排除在调度之外?还是线程会被调度,发现它仍在等待并再次 yield(),浪费资源?

我问的原因是,如果我有 X 个线程正在运行,并且某些线程由于某种原因被阻塞,被阻塞的线程会妨碍可运行线程(假设它们具有相同的优先级)吗?

【问题讨论】:

    标签: io mutex scheduling condition-variable


    【解决方案1】:

    是的,它们在等待时不会消耗任何 CPU 资源。只有自旋锁会忙着等待。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2015-07-12
      • 1970-01-01
      相关资源
      最近更新 更多