1、concurrentHashMapjava
线程安全版本的hahsmap。你们都知道HashMap的实现是数组链的形式,而concurrentHashMap至关于对HashMap的每一个数组进行加锁,这样使得线程安全数组
2、CopyOnWriteArrayList安全
2.1 线程安全版本的ArrayList并发
2.2 CopyOnWrite写的时候复制。当咱们向一个容器中添加元素时,不是直接添加,而是将当前容器Copy出来,而后在新容器里面添加,添加完成以后,将原容器的引用指向新容器。能够实现并发的读。spa
2.3 实现原理.net
写的时候加锁,读的时候不加锁。线程
2.4 相对于ArrayList线程安全相对于Vector不会出现迭代器异常,提升了效率blog
一、迭代器异常:get
java中,集合在遍历的时候,若是内部被修改了会抛出java.util.ConcurrentModificationException异常。list和vector都会抛出it
二、快速失败:(fail-fast)
快速失败指迭代vector的时候不容许其余线程修改,否则就不许确了,抛出java.util.ConcurrentModificationException异常。
通俗解释:就好像有一盘饺子,你要数数有几个,在你还没数完,其余人有放入(或拿走)了几个饺子。
你就只能从新再数了。原本你数数就很快,可是,就有人比你手更快。
三、提升读的效率:
由于读操做没有加锁,因此效率很高。
因此此方法适用于读多写少修改少的应用场景。
本文适用于对基础概念研读过复习使用,若是不少基础概念都清楚看这些的话可能会云里雾里。
参考连接:https://blog.csdn.net/soundslow/article/details/52198722