ConcurrentHashMap简介
2018-05-01 本文已影响0人
yangbug
先贴出一张图表示对ConCurrentHashMap的理解
![](https://img.haomeiwen.com/i10430914/97c6dafd4f13c345.png)
HashMap:HashEntry数组
HashEntry:注意 value 以及 next域都用volatile修饰,保证数据安全。
![](https://img.haomeiwen.com/i10430914/0736c4cec685ca9f.png)
Segments:并发的最小单元,ConcurrentHashMap与Hashtable不同的是,ConcurrenHashMap是分段加锁,而Hashtable则是整个对象加锁。从加锁的方式开看,ConcurrentHashMap效率相对来说高一点。每个Segments都是一个小型的HashMap。
![](https://img.haomeiwen.com/i10430914/fcd2a0c43a86a356.png)
Segment 继承了可重入锁,提升并发操作的效率。
ConcurrentHashMap数据插入:
![](https://img.haomeiwen.com/i10430914/84b8390cccb817aa.png)
![](https://img.haomeiwen.com/i10430914/dfeb9415667af65d.png)
![](https://img.haomeiwen.com/i10430914/78da7cd4d83eb162.png)
这只是读源码笔记,主要将自己的感受记下来,写的不好的地方请大家原谅。如果对您有帮助那是莫大的荣幸了,同时想说纸上读来终觉浅,感兴趣的同学可以翻看一下源码,会有意想不到的收获。