在 CPU 时间方面等待互斥量与等待信号量

Waiting on mutex vs waiting on semaphore in terms of CPU-time

我想知道在 CPU 用法方面,等待锁定的互斥锁和等待锁定的信号量之间是否有任何区别。 根据手册页,在这两种情况下,线程都会阻塞,这意味着它会被转移到等待队列中,因此不会消耗 CPU 时间。

相反,我确实看到一些地方和答案声称等待互斥量会导致忙等待,这意味着消耗 CPU-time 无济于事。

如果您能解释一下是否有区别,我将不胜感激。

编辑:我的问题被确定为可能与 this question 重复,但是,正如我指出的那样,我在该论坛的其他一些地方看到了相反的答案,声称等待互斥量很忙-等待中。

当然这取决于 OS 和您使用的编译器实现。

但是,由于互斥量可以作为信号量的一个版本来实现,因此最坏的情况是互斥量作为信号量执行。没有理由降低编码效率。