操作系统为什么更多用的是自旋锁。

来源:7-3 线程同步之自旋锁

慕运维8188418

2021-05-08

操作系统为什么更多用的是自旋锁

写回答

1回答

咚咚呛

2021-05-13

这个问题我看了下还没有人回答。

其实答案是显而易见的,自旋锁和互斥锁各有优劣,自旋锁的特性决定了它在操作系统中更加适用。


『自旋锁避免了进程上下文的调度开销,因此对于线程只会阻塞很短时间的场合是有效的。因此操作系统的实现在很多地方往往用自旋锁。Windows操作系统提供的轻型读写锁(SRW Lock)内部就用了自旋锁。显然,单核CPU不适于使用自旋锁,这里的单核CPU指的是单核单线程的CPU,因为,在同一时间只有一个线程是处在运行状态,假设运行线程A发现无法获取锁,只能等待解锁,但因为A自身不挂起,所以那个持有锁的线程B没有办法进入运行状态,只能等到操作系统分给A的时间片用完,才能有机会被调度。这种情况下使用自旋锁的代价很高。』

1
0

(新版)计算机基础,计算机组成原理+操作系统+网络

编程之前先学这门课,系统补足计算机基础知识,夯实编程地基

7739 学习 · 1580 问题

查看课程