我读到,在自旋锁中,进程在循环中一直在等待锁,直到它从其他进程接收到信号(锁)或释放(锁)。这会导致繁忙的等待,从而浪费CPU周期。
我怀疑,如果CPU在循环中不断地检查锁变量的值,那么其他一些进程将如何完全执行关键部分并释放锁,因为执行关键部分也需要CPU,而CPU则忙于检查其他进程中锁的值。
发布于 2017-10-31 08:52:49
即使当一个进程在锁上旋转时,任务调度程序仍处于活动状态,并将调度其他任务。在单CPU系统上,旋转任务将被挂起,另一个任务将代替它运行;在多CPU系统上,确切的行为将取决于正在运行的任务的数量。
https://unix.stackexchange.com/questions/401563
复制相似问题