博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
互斥锁(排它锁、独占锁、写锁、X锁)和共享锁(读锁、S锁) 自旋锁
阅读量:7073 次
发布时间:2019-06-28

本文共 565 字,大约阅读时间需要 1 分钟。

hot3.png

共享锁(S锁):如果事务T对数据A加上共享锁后,则其他事务只能对A再加共享锁,不能加排他锁,直到已释放所有共享锁。获准共享锁的事务只能读数据,不能修改数据。 排他锁(X锁):如果事务T对数据A加上排他锁后,则其他事务不能再对A加任任何类型的锁,直到在事务的末尾将资源上的锁释放为止。获准排他锁的事务既能读数据,又能修改数据。

自旋锁与互斥锁有点类似,只是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。

  • 自旋锁:自旋,jvm默认是10次吧,有jvm自己控制。for去争取锁
  • 自旋锁的其他种类
  • 阻塞锁:被阻塞的线程,不会争夺锁。
  • 可重入锁: 多次进入改锁的域
  • 读写锁
  • 互斥锁:锁本身就是互斥的
  • 悲观锁:不相信,这里会是安全的,必须全部上锁
  • 乐观锁:相信,这里是安全的。
  • 公平锁:有优先级的锁
  • 非公平锁:无优先级的锁
  • 偏向锁:无竞争不锁,有竞争挂起,转为轻量锁
  • 对象锁:锁住对象
  • 线程锁
  • 锁粗化:多锁变成一个,自己处理
  • 轻量级锁:CAS 实现
  • 锁消除:偏向锁就是锁消除的一种
  • 锁膨胀:jvm实现,锁粗化
  • 信号量:使用阻塞锁 实现的一种策略

转载于:https://my.oschina.net/u/2307114/blog/908009

你可能感兴趣的文章
MPAndroidChart绘制曲线图、柱状图总结
查看>>
我的Java设计模式-中介者模式
查看>>
EasyBarrage——Android平台轻量级弹幕效果
查看>>
SpringBoot高级篇Redis之String数据结构的读写
查看>>
花了 4 个月整理了 50 篇 Android 干货文章
查看>>
MySQL DBA技术难度低为什么工资比Oracle高?
查看>>
读函数式编程思维
查看>>
从壹开始前后端分离【 .NET Core2.0 +Vue2.0 】框架之十一 || AOP自定义筛选,Redis入门 11.1...
查看>>
9月10日科技联播:马云将回归教育事业,张勇接任阿里巴巴董事局主席
查看>>
klock 分布式锁重大更新
查看>>
玩转算法面试:(三)LeetCode数组类问题
查看>>
kali:加速WEP黑客攻击,ARP请求重播攻击
查看>>
C# 添加、获取及删除PDF附件
查看>>
华为S5300系列交换机V200R001SPH027升级补丁
查看>>
CISP-PTE注册信息安全专业人员渗透测试工程师知识体系大纲
查看>>
移动web开发中,好用的小方法
查看>>
Go 语言的垃圾回收演化历程:垃圾回收和运行时问题
查看>>
【Java资源免费分享,网盘自己拿】
查看>>
webpack配置(第四步:html篇(进阶篇))
查看>>
Spring Boot开启的2种方式
查看>>