java并发包-concurrentMap和CopyOnWriteArrayList

1concurrentHashMapjava

线程安全版本的hahsmap。你们都知道HashMap的实现是数组链的形式,而concurrentHashMap至关于对HashMap的每一个数组进行加锁,这样使得线程安全数组

2CopyOnWriteArrayList安全

2.1 线程安全版本的ArrayList并发

2.2 CopyOnWrite写的时候复制。当咱们向一个容器中添加元素时,不是直接添加,而是将当前容器Copy出来,而后在新容器里面添加,添加完成以后,将原容器的引用指向新容器。能够实现并发的读。spa

2.3 实现原理.net

写的时候加锁,读的时候不加锁。线程

2.4 相对于ArrayList线程安全相对于Vector不会出现迭代器异常,提升了效率blog

一、迭代器异常:get

java中,集合在遍历的时候,若是内部被修改了会抛出java.util.ConcurrentModificationException异常。listvector都会抛出it

二、快速失败:(fail-fast)

快速失败指迭代vector的时候不容许其余线程修改,否则就不许确了,抛出java.util.ConcurrentModificationException异常。

通俗解释:就好像有一盘饺子,你要数数有几个,在你还没数完,其余人有放入(或拿走)了几个饺子。 
你就只能从新再数了。原本你数数就很快,可是,就有人比你手更快。

三、提升读的效率:

由于读操做没有加锁,因此效率很高。

因此此方法适用于读多写少修改少的应用场景。

 

本文适用于对基础概念研读过复习使用,若是不少基础概念都清楚看这些的话可能会云里雾里。

参考连接:https://blog.csdn.net/soundslow/article/details/52198722

相关文章
相关标签/搜索