信号量和自旋锁的区别?如何选择使用?

2023-06-30   


如果代码需要睡眠(往往发生在和用户空间同步时),使用信号量是唯一的选择。由于信号量不受睡眠的限制,所以通常来说更加简单一些。
   当需要在自旋锁和信号量中作选择时,选择结果应该取决于锁被持有的时间长短。理想的情况是所有的锁都应该尽可能短的占有,但如果锁的持有时间比较长,使用信号量是更好的选择。
   信号量不会关闭内核抢占,所以持有自旋锁的代码可以被抢占。所以信号量不会对影响调度反应时间带来负面影响。


相关内容:

  1. 介绍一下Linux内核的排队自旋锁
  2. Linux内核的同步机制是什么?主要有哪几种内核锁
  3. 海康威视笔试题
  4. 如何查看当前ORACLE数据库里面锁的情况
  5. 某个公司的Java笔面试题
  6. 学生手机如何管控