【发布时间】:2013-01-17 02:43:49
【问题描述】:
这似乎很简单,但只是想检查这是否得到保证(在 Linux 上)。在满足等待条件之前,线程是否被排除在调度之外?还是线程会被调度,发现它仍在等待并再次 yield(),浪费资源?
我问的原因是,如果我有 X 个线程正在运行,并且某些线程由于某种原因被阻塞,被阻塞的线程会妨碍可运行线程(假设它们具有相同的优先级)吗?
【问题讨论】:
标签: io mutex scheduling condition-variable
这似乎很简单,但只是想检查这是否得到保证(在 Linux 上)。在满足等待条件之前,线程是否被排除在调度之外?还是线程会被调度,发现它仍在等待并再次 yield(),浪费资源?
我问的原因是,如果我有 X 个线程正在运行,并且某些线程由于某种原因被阻塞,被阻塞的线程会妨碍可运行线程(假设它们具有相同的优先级)吗?
【问题讨论】:
标签: io mutex scheduling condition-variable
是的,它们在等待时不会消耗任何 CPU 资源。只有自旋锁会忙着等待。
【讨论】: