信号量和自旋锁的区别?如何选择使用?
如果代码需要睡眠(往往发生在和用户空间同步时),使用信号量是唯一的选择。由于信号量不受睡眠的限制,所以通常来说更加简单一些。
当需要在自旋锁和信号量中作选择时,选择结果应该取决于锁被持有的时间长短。理想的情况是所有的锁都应该尽可能短的占有,但如果锁的持有时间比较长,使用信号量是更好的选择。
信号量不会关闭内核抢占,所以持有自旋锁的代码可以被抢占。所以信号量不会对影响调度反应时间带来负面影响。
当需要在自旋锁和信号量中作选择时,选择结果应该取决于锁被持有的时间长短。理想的情况是所有的锁都应该尽可能短的占有,但如果锁的持有时间比较长,使用信号量是更好的选择。
信号量不会关闭内核抢占,所以持有自旋锁的代码可以被抢占。所以信号量不会对影响调度反应时间带来负面影响。
【信号量和自旋锁的区别?如何选择使用?】相关文章
2. static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
4. 如何选择使用结构还是类
5. 第二层交换机和路由器的区别?第三层交换机和路由器的区别?
7. 静态变量和实例变量的区别
9. WEB控件及HTML服务端控件能否调用客户端方法?如果能,请解释如何调用?
10. 女士们如何选择合身的职场西装?
本文来源:https://www.mianshiwenti.com/a13650.html
进入下载页面
上一篇:UNIX文件类型
下一篇:UNIX文件系统常用命令
﹝信号量和自旋锁的区别?如何选择使用?﹞相关内容
- 职业生涯路线该如何选择
- 如何选择跳槽好时机
- 如果另外一家公司同时录用你,你将如何选择?
- 网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
- 构造方法和其他方法的区别?怎么调用父类的构造方法
- Java 中访问数据库的步骤?Statement 和PreparedStatement 之间的区别?
- 什么是Smarty变量操作符?如何使用Smarty变量操作符
- 你为何选择应聘我们公司?
- 如何查看当前ORACLE数据库里面锁的情况
- 简述使用ftp进行文件传输时的两种登录方式?它们的区别是什么?常用的ftp文件传输命令是什么?