Java中的‘锁’-StampedLock

接上篇

5、显式锁StampedLock

    StampedLock锁是基于能力的锁,可以很好的实现乐观锁和悲观锁的逻辑,此处为jdk1.8提供的api,而且理解不深入的情况下容易出现死锁或者不必要的麻烦,所以谨慎使用

三种模式

    写:writeLock阻塞,可返回一个标志,当锁以写模式持有时,没有读锁可以直接获取,所有乐观性读确认将失败;

    读:read Lock 可能为非独占访问而阻塞等待

    乐观读:锁当前未被写模式持有,tryOptimisticRead返回一个非0标识

此处直接挂Java中doc提供的例子

img_4149487776984f12407f6aa9231f71fa.png
img_4106812be7867e0017d452603cbf1b51.png

一个线程安全的单例模式写法


img_5ba4248d2255f2ee669430e8933d2d68.png


img_119d6baec1deb0f611ca92f65c6aec31.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值