【详解】Java高并发三种锁的比较

引入

在Java高并发场景下,主要使用是三种锁synchronizedStampedLockLock

比较

synchronizedStampedLockLock
是JVM的的内置锁,每个JDK版本都会优化是一个Java类,可以更好的扩展是一个Java类,可以更好的扩展
都是悲观锁提供了写的乐观锁都是悲观锁,但是提供了自旋锁,或者不阻塞的获取锁
性能一般,因为有一个从用户态到内核态的过程性能最好,可以代替读写锁性能十分不稳定,在复杂的读写环境下,性能十分差
不具有公平锁不具有公平锁具有公平锁
锁会自动释放锁需要手动释放锁需要手动释放

总结

  • StampedLock是性能最好的,可以胜任复杂的读写多线程环境
  • 令人惊奇的是synchronized由于是内置锁,每个JDK版本都会优化,尤其在复杂的读写多线程情况下,表现依然很优秀。
  • Lock虽然提供了读写锁,但是性能特别差;而ReentrantLock性能十分好,同时功能丰富

个人推荐如果时读写环境,推荐使用StampedLock;如果是正常的加锁,推荐使用synchronized;如果需要对锁有更多的控制,推荐使用ReentrantLock

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值