ConcurrentHashMap
ConcurrentHashMap是线程安全,性能出色的Map的线程安全实现,相比较HashMap他是线程安全的,相比较HashTable他的性能优势非常明显。他的使用很简单,这里主要是想要探究一下ConcurrentHashMap的实现原理。
在这里一共有 个问题需要搞明白。
- ConcurrentHashMap为什么比HashTable的性能要高?
- ConcurrentHashMap在JDK8和JDK7有什么变化,为什么会有这种变化,对我们开发有什么启示?
- 为什么在JDK8中使用Synchronized而不是用ReentrantLock来实现加锁?
带着这几个问题我们来分析一下ConcurrentHashMap的源码吧。
ConcurrentHashMap定义
在JDK8中ConcurrentHashMap的定义如下:
public class ConcurrentHashMap<K,V> extends AbstractMap<K,V> implements ConcurrentMap<K,V>, Serializable {