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