互斥锁,同步锁,临界区,互斥量,信号量,自旋锁概念和联系

转自知乎TIM chen

互斥锁和互斥量在我的理解里没啥区别,不同叫法。广义上讲可以值所有实现互斥作用的同步机制。狭义上讲指的就是mutex这种特定的二元锁机制。

互斥锁的作用就是互斥,mutual exclusive,是用来保护临界区(critical section)的。所谓临界区就是代码的一个区间,如果两个线程同时执行就有可能出问题,所以需要互斥锁来保护。

信号量(semaphore)是一种更高级的同步机制,mutex可以说是semaphore在仅取值0/1时的特例。信号量和互斥量本质上一样,都是用来表示对资源的访问权,但是互斥量表示资源某个时刻最多只能被一个线程占用,也就是资源计数最多是1,而信号量的资源计数可以超过1,即同时被多个线程占用

自旋锁是一种互斥锁的实现方式而已,相比一般的互斥锁会在等待期间放弃cpu,自旋锁(spinlock)则是不断循环并测试锁的状态,这样就一直占着cpu。

同步锁好像没啥特殊说法,你可以理解为能实现同步作用的都可以叫同步锁,比如信号量。

作者:Tim Chen
链接:https://www.zhihu.com/question/39850927/answer/83409955
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

原文链接: https://www.cnblogs.com/wangshaowei/p/8856619.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    互斥锁,同步锁,临界区,互斥量,信号量,自旋锁概念和联系

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/391969

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月31日 上午10:51
下一篇 2023年3月31日 上午10:51

相关推荐