JAVA集合(二)-并发集合
✔ConcurrentHashMap
- 并发的HashMap,避免HashMap在并发环境下产生死循环
- 内部默认由16个Segment组成,每个segment内部有一个Entity数组,用来存放元素
- put操作会对写入元素的进行hash值的计算,由hash值定位其所在的segment,然后对segment进行上锁再进行写操作
- get操作则不会上锁,由于count,value都定义为volatile(线程可见),volatile字段的写入操作先于读操作,所以拿到的都是最新的.
✔CopyOnWriteList
- 写操作的时候会copy原来的数组,进行写操作,然后改引用的的指向
- 只能做到数据最终一致性,不能做到强一致性
- 用于读多写少的场景