首页 > 产品 > 知识 > 自旋锁,自旋锁和互斥锁的区别 java中lock Syntronized区别

自旋锁,自旋锁和互斥锁的区别 java中lock Syntronized区别

来源:整理 时间:2024-12-16 06:58:37 编辑:智能门户 手机版

本文目录一览

1,自旋锁和互斥锁的区别 java中lock Syntronized区别

自旋锁(Spin lock) 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是 否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。其作用是为了解决某项资源的互斥使用。...

自旋锁和互斥锁的区别 java中lock Syntronized区别

2,关于旋转锁spin lock的解释

spin lock一般翻译为自旋锁,简单的理解是这样的,它和信号量差不多。 信号量:线程在无信号时会阻塞,阻塞时会释放CPU,让其它线程用。 自旋锁:自旋锁在得不到锁的状态下也会阻塞,但阻塞时不释放CPU,一直占用CPU,相当于在死循环。 如果想看比较专业的解释,可以参考: http://baike.baidu.com/view/1250961.html?wtp=tt

关于旋转锁spin lock的解释

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

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

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

4,spinlock自旋锁是如何实现的

在 x86 平台上,spinlock 主要通过处理器的 lock 指令前缀实现当某个线程的一条指令访问某个内存的时候,其他的线程的指令无法访问该内存的功能。因此在 spinlock 初始化阶段,将锁变量中的值某个值 k 赋为1。在加锁的时候,使用 lock decl (%eax) 指令互斥地将该变量变成0,并且将结果是否问0 赋值给 EFLAGS寄存器 的对应位。只有加上锁的线程才会结果才是0,其他线程的结果不是0。接着通过判断该对应位判断是否加上锁。如果没有加上,则循环执行 lock decl (%eax),直到加上为止。其中 %eax 是这个变量的地址。这里用的是gcc 的AT&T语法的汇编。
说实话 真不不太清楚 可以去网上看看啊

5,确定选用自旋锁和信号量的原则有哪些

1当锁不能被获取时,使用信号量的开销是进城上下文切换Tsw,使用自旋锁是等待获取自旋锁时间Tcs,若Tcs比较小用自旋锁,若Tsw大用信号量。2)信号量所保护的临界区可包含可能引起阻塞的代码,而自旋锁绝对要避免用来保护这样代码的临界区。因为阻塞意味着要进行进程切换,如果进程被切换,另一个进程企图获得本自旋锁,死锁就发生。3)信号量存在进程上下文,因此,如果被保护的共享资源需要在中断或软中断情况下使用,则在信号量和自旋锁之前只能选择自旋锁,当然如果一定要使用信号量,则只能通过down_trylock(),不能获取就返回以避免阻塞。
由于信号量不受睡眠的限制,所以通常来说更加简单一些。 当需要在自旋锁和信号量中作选择时,选择结果应该取决于锁被持有的时间长短。理想的情况是所有的锁都应该尽可能短的占有,但如果锁的持有时间比较长,使用信号量是更好的选择。 信号量不会关闭内核抢占,所以持有自旋锁的代码法筏瘁禾诓鼓搭态但卡可以被抢占。所以信号量不会对影响调度反应时间带来负面影响。

6,自旋锁的自旋锁原理

跟互斥锁一样,一个执行单元要想访问被自旋锁保护的共享资源,必须先得到锁,在访问完共享资源后,必须释放锁。如果在获取自旋锁时,没有任何执行单元保持该锁,那么将立即得到锁;如果在获取自旋锁时锁已经有保持者,那么获取锁操作将自旋在那里,直到该自旋锁的保持者释放了锁。由此我们可以看出,自旋锁是一种比较低级的保护数据结构或代码片段的原始方式,这种锁可能存在两个问题:死锁。试图递归地获得自旋锁必然会引起死锁:递归程序的持有实例在第二个实例循环,以试图获得相同自旋锁时,不会释放此自旋锁。在递归程序中使用自旋锁应遵守下列策略:递归程序决不能在持有自旋锁时调用它自己,也决不能在递归调用时试图获得相同的自旋锁。此外如果一个进程已经将资源锁定,那么,即使其它申请这个资源的进程不停地疯狂“自旋”,也无法获得资源,从而进入死循环。过多占用cpu资源。如果不加限制,由于申请者一直在循环等待,因此自旋锁在锁定的时候,如果不成功,不会睡眠,会持续的尝试,单cpu的时候自旋锁会让其它process动不了. 因此,一般自旋锁实现会有一个参数限定最多持续尝试次数. 超出后, 自旋锁放弃当前time slice. 等下一次机会由此可见,自旋锁比较适用于锁使用者保持锁时间比较短的情况。正是由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠是非常必要的,自旋锁的效率远高于互斥锁。信号量和读写信号量适合于保持时间较长的情况,它们会导致调用者睡眠,因此只能在进程上下文使用,而自旋锁适合于保持时间非常短的情况,它可以在任何上下文使用。如果被保护的共享资源只在进程上下文访问,使用信号量保护该共享资源非常合适,如果对共享资源的访问时间非常短,自旋锁也可以。但是如果被保护的共享资源需要在中断上下文访问(包括底半部即中断处理句柄和顶半部即软中断),就必须使用自旋锁。自旋锁保持期间是抢占失效的,而信号量和读写信号量保持期间是可以被抢占的。自旋锁只有在内核可抢占或SMP(多处理器)的情况下才真正需要,在单CPU且不可抢占的内核下,自旋锁的所有操作都是空操作,上面简要介绍了自旋锁的基本原理,以下将给出具体的例子,进一步阐释自旋锁在实际系统中的应用。上面我们已经讲过自旋锁只有在内核可抢占或SMP(多处理器)的情况下才真正需要,下面我们就以SMP为例,来说明为什么要使用自旋锁,以及自旋锁实现的基本算法。
文章TAG:自旋锁互斥互斥锁区别自旋锁java中lockSyntronized区别

最近更新

  • 新疆非自动化设备公司排名,国内自动化设备公司排名新疆非自动化设备公司排名,国内自动化设备公司排名

    国内什么比较好自动化机械设计与非标机械公司?世界前十自动化公司排名(世界最大自动化公司10。画布科技成立于2015年:行业,产业,自动化机械设计和非标机械的出现更好公司自动化设备改变了.....

    知识 日期:2024-12-16

  • crf是什么意思,CRF是什么病crf是什么意思,CRF是什么病

    CRF是什么病2,游戏里的COF是什么意思3,DNFcof指是什么意思4,请问食品接触报告中的rohsreachHFFC分别是什么意思5,FOBCFRCIF在国际贸易中分别是啥意思6,在外贸出口中LCCFRFOB是什么意思1,CRF.....

    知识 日期:2024-12-16

  • 电缸自动化设备应用,电气自动化在电力工程中的应用电缸自动化设备应用,电气自动化在电力工程中的应用

    自动化设备是自动化系统中的大型成套设备。电气自动化在电力工程中有什么应用?自动化设备是做什么的?自动化设备是指能够自动完成一定功能的机械、电子、控制等技术的综合应用,什么是自动.....

    知识 日期:2024-12-16

  • 工控自动化设备有哪些种类,进口工控自动化设备--首页工控自动化设备有哪些种类,进口工控自动化设备--首页

    自动化设备主要用什么元件?工控有哪些机器品牌?与普通计算机有什么区别工控PC是专门为工业设计的计算机自动化control设备,也称工业控制计算机。公司已经深耕自动化设备行业,基于应用场景,.....

    知识 日期:2024-12-16

  • 远程摄像头,什么是手机远程视频监控远程摄像头,什么是手机远程视频监控

    什么是手机远程视频监控所谓的手机远程视频监控,简单讲就是把本地监控做到手机上,手机也能远程看到摄像头照到的情况,不论你在哪里都能看到,只要你的手机能上网。桂林神齐科技有限公司研发.....

    知识 日期:2024-12-16

  • 频率是什么,什么是频率频率是什么,什么是频率

    什么是频率2,什么叫频率3,什么是频率4,什么叫频率5,什么是频率6,什么是频率1,什么是频率一秒钟变化的次数f=1/t2,什么叫频率频率是用来描述物体振动快慢的物理量。物理学中把物体在每秒内振动.....

    知识 日期:2024-12-16

  • 小型示波器,什么样的示波器好用体积小点的价格实惠的小型示波器,什么样的示波器好用体积小点的价格实惠的

    什么样的示波器好用体积小点的价格实惠的2,超小型袖珍ST16二手示波器咋样3,如何做一个简易示波器4,求推荐一款示波器5,手持式示波器几种典型产品6,国产的手持示波器求推荐一个好点的价格在.....

    知识 日期:2024-12-16

  • 固件升级,什么是固件升级固件升级,什么是固件升级

    什么是固件升级固件(FirmWare)的词典里的解释是具有软件功能的硬件2,什么是固件升级呢D刷机就要固件了固件升级就是指对你的机器修补一些小Bug..进行软件上的一些更改3,固件升级是什么概.....

    知识 日期:2024-12-15

680