【Linux应用】自旋锁和互斥锁的区别
2021/9/16 7:06:12
本文主要是介绍【Linux应用】自旋锁和互斥锁的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
总结自旋锁和互斥锁之间的区别,如下:
- 实现方式的区别:互斥锁是基于自旋锁而实现的,所以自旋锁相较于互斥锁更加底层。
- 开销上的区别:获取不到互斥锁会陷入阻塞状态(休眠),直到获取到锁时被唤醒;而获取不到自旋锁会在原地“自旋”,直到获取到锁;休眠和唤醒的开销是很大的,所以互斥锁的开销远高于自旋锁、自旋锁的效率远高于互斥锁;但如果长时间“自旋”等待,会使得CPU使用效率降低,故自旋锁不用于等待时间比较长的情况。
- 使用场景的区别:自旋锁在用户态应用程序中使用的比较少,通常在内核代码中使用的比较多;因为自旋锁可以在中断服务程序中使用,而互斥锁则不行,在执行中断服务程序时要求不能休眠、不能被抢占(内核使用自旋锁会自动禁止抢占),一旦休眠意味着执行中断服务函数时主动交出了CPU使用权,休眠结束时无法返回到中断服务函数中,这样就会导致死锁。
这篇关于【Linux应用】自旋锁和互斥锁的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-12如何创建可引导的 ESXi USB 安装介质 (macOS, Linux, Windows)
- 2024-11-08linux的 vi编辑器中搜索关键字有哪些常用的命令和技巧?-icode9专业技术文章分享
- 2024-11-08在 Linux 的 vi 或 vim 编辑器中什么命令可以直接跳到文件的结尾?-icode9专业技术文章分享
- 2024-10-22原生鸿蒙操作系统HarmonyOS NEXT(HarmonyOS 5)正式发布
- 2024-10-18操作系统入门教程:新手必看的基本操作指南
- 2024-10-18初学者必看:操作系统入门全攻略
- 2024-10-17操作系统入门教程:轻松掌握操作系统基础知识
- 2024-09-11Linux部署Scrapy学习:入门级指南
- 2024-09-11Linux部署Scrapy:入门级指南
- 2024-08-21【Linux】分区向左扩容的方法