ConcurrentHashMap 可以使用 ReentrantLock 作为锁吗?

简介: ConcurrentHashMap 可以使用 ReentrantLock 作为锁吗?

理论上讲是可以的,但我认为 synchronized 关键字会更好一点。因为在 JDK1.6 之后,synchronized 关键字也进行了一些优化,它里面引入了偏向锁、轻量级锁以及重量级锁,这些在 ReentrantLock 中是没有的

synchronized 关键字对于锁的一些优化

并且随着 JDK 的升级,synchronized 也在进一步的优化,因为这个 ReentrantLock 是用 Java 代码实现的,所以在之后的话也很难有特别大的一种提升空间

所以我会优先选择 synchronized 作为 ConcurrentHashMap 的锁,其次才选 ReentrantLock

相关文章
|
21天前
ReentrantLock
ReentrantLock
15 1
|
22天前
|
监控
多线程并发之读写锁(ReentranReadWriteLock&ReadWriteLock)使用详解
多线程并发之读写锁(ReentranReadWriteLock&ReadWriteLock)使用详解
24 0
|
11月前
|
安全 Java
synchronized 锁与 ReentrantLock 锁的区别
synchronized 锁与 ReentrantLock 锁的区别
92 0
如何在不加锁的情况下解决线程安全问题
如何在不加锁的情况下解决线程安全问题
如何在不加锁的情况下解决线程安全问题
ReentrantLock介绍
ReentrantLock介绍
129 0
|
Java
彻底理解ReentrantLock可重入锁的使用
java除了使用关键字synchronized外,还可以使用ReentrantLock实现独占锁的功能。而且ReentrantLock相比synchronized而言功能更加丰富,使用起来更为灵活,也更适合复杂的并发场景。这篇文章主要是从使用的角度来分析一下ReentrantLock。
157 0
彻底理解ReentrantLock可重入锁的使用
|
Java 容器 安全
ReentrantLock详解
本博客主要讲述ReentrantLock的实现原理,主要内容包括: AQS原理以及实现过程。 ReenetrantLock获取锁、释放锁流程,以及原理。 ReenetrantLock源码分析。
6088 1
|
uml
除了读写锁,JUC 下面还有个 StampedLock!还不过来了解一下么?
在了解完 ReentrantLock 和 ReentrantReadWriteLock 之后,惊奇的发现 JUC 下还有一个 StampedLock 。 查阅资料发现是 JDK8 新增的一个锁。现在已经 JDK15 了,原谅我的孤陋寡闻,实在是业务开发中用的太少。那行吧,赶紧来看一下 StampedLock 到底是什么?为什么有了 ReentrantLock 和 ReentrantReadWriteLock 之后还要设计一个 StampedLock ?
96 0
|
存储 设计模式 Java
深入理解ReentrantLock
同步锁synchronized和重入锁ReentrantLock都是用于并发程序设计必不可少的手段,在JDK 5.0早期版本中,同步锁性能远远低于重入锁,但是在6.0版本之后,jdk对同步锁做了大量的优化,使得同步锁跟重入锁性能差距并不大,并且jdk团队表示,同步锁还有进一步升级优化的空间
深入理解ReentrantLock
|
调度
ReentrantLock的使用
ReentrantLock的使用
227 0
ReentrantLock的使用