在单核CPU下,spin lock没有意义,只会影响正常线程响应;使用mutex虽然会在“挂起”和“运行”两个队列间切换,但提高了系统整体的响应比。
多核CPU下,spin lock在多个和核心上的轮询时间是可以忽略的,使用spin lock避免了因为队列切换导致的时间消耗。
现代操作系统的做法,多核的环境中,在实现mutex时,如果lock操作后,进行短暂的轮询(spin lock),超过这段时间后,使用传统的mutex阻塞(加入挂起队列)。如果程序可预测的阻塞的时间较短,可以主动使用spin lock。

本文探讨了单核和多核CPU下spinlock和mutex的使用策略,强调了spinlock在多核环境中的优势,以及现代操作系统如何结合两者提高系统响应。提到在预测短阻塞情况下,主动采用spinlock以减少切换开销。
417

被折叠的 条评论
为什么被折叠?



