美文网首页
MySQL自旋锁

MySQL自旋锁

作者: 小码弟 | 来源:发表于2018-10-30 19:57 被阅读0次

自旋锁和互斥锁类似,区别在于线程在未获得锁时不去睡眠而是原地等待,直到锁被释放。
自旋锁适合用在耗时较少的逻辑中对共享数据的保护,即线程持有自旋锁的时间很短。
等待的线程发现自旋锁被其他线程持有时,不必挂起自己,稍微等一会儿就好,避免线程状态切换带来的开销。如果不用自旋锁,逻辑耗时很少而线程频繁地睡眠/唤醒,加重线程调度程序的负担。
缺点是:
1、等待自旋锁的线程一直占有CPU, 如果较长时间内不能及时释放自旋锁,会浪费CPU资源。
2、 自旋锁有可能产生死锁。
总之,自旋锁适合于内核可抢占式情况,对于单核非抢占式情形,由于不可抢占,自旋锁的操作是空操作。

相关文章

  • MySQL自旋锁

    自旋锁和互斥锁类似,区别在于线程在未获得锁时不去睡眠而是原地等待,直到锁被释放。自旋锁适合用在耗时较少的逻辑中对共...

  • iOS 开发中加锁

    [1].OSSpinLock 自旋锁 [1]自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被...

  • 关于自旋锁

    自旋锁是什么? spinlock,不断的自旋(自我循环)尝试获得锁。参考文档:Java中的自旋锁 自旋锁的实现 自...

  • 自旋锁与互斥锁

    自旋锁(Spin lock) 自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保...

  • 线程同步

    一、临界资源 加锁会导致运行时间的增长 二、互斥锁 三、自旋锁 实验发现【自旋锁】的效率较高自旋锁 自旋锁加入休眠...

  • CLH并发队列

    1 什么是自旋锁和互斥锁? 由于CLH锁是一种自旋锁,那么我们先来看看自旋锁是什么? 自旋锁说白了也是一种互斥锁,...

  • MySQL innodb锁

    MySQL自旋锁-spin lock 一篇算是介绍innodb锁比较有条理的文章 https://blog.csd...

  • 自旋锁

    1. 什么是自旋锁 自旋锁与互斥锁有点类似,但是自旋锁不会引起调用者阻塞,如果自旋锁已经被别的执行单元保持,调用者...

  • 很有深度的技术资料

    Intel PAUSE指令变化是如何影响自旋锁以及MySQL的性能的[https://plantegg.githu...

  • iOS中各种锁的性能对比

    自旋锁 与 互斥锁 自旋锁 (spin lock): 如果一个线程需要获取自旋锁,该锁已经被其他线程占用,该线程不...

网友评论

      本文标题:MySQL自旋锁

      本文链接:https://www.haomeiwen.com/subject/efpwtqtx.html