互斥锁(排它锁、独占锁、写锁、X锁)和共享锁(读锁、S锁) 自旋锁

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

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

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

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

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值