JAVA核心知识之ConcurrentHashMap源码分析
1 前言ConcurrentHashMap是基于Hash表的Map接口实现,键与值均不允许为NULL,他是一个线程安全的Map。同时他也是一个无序的Map,不同时间进行遍历可能会得到不同的顺序。在JDK1.8之前,ConcurrentHashMap使用分段锁以在保证线程安全的同时获得更大的效率。本文所述便是基于JDK1.8。2 继承关系可以看到ConcurrentHashMap继承了AbstractMap及ConcurrentMap抽象类,并实现了Serializable接口,这说明ConcurrentHashMap是一个线程安全的标准Map,且允许序列化。与HashMap不同是ConcurrentHashMap不允许Clone。3 构造方法ConcurrentHashMap同样是采用懒初始化的方式,有实际元素时才进行容器的初始化。因此其构造方法与HashMap相差无几。以上构造并没有什么特别的,逻辑也相对简单,不再详细解析,感兴趣的话可以到前言提到的HashMap篇了解。
下载地址
用户评论