• java并发包-concurrentMap和CopyOnWriteArrayList


    1concurrentHashMap

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

    2CopyOnWriteArrayList

    2.1 线程安全版本的ArrayList

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

    2.3 实现原理

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

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

    1、迭代器异常:

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

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

    快速失败指迭代vector的时候不允许其他线程修改,不然就不准确了,抛出java.util.ConcurrentModificationException异常。

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

    3、提高读的效率:

    因为读操作没有加锁,所以效率很高。

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

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

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

  • 相关阅读:
    Python之路,day16-Python基础
    Python之路,day15-Python基础
    Python之路,day14-Python基础
    django之model操作
    django信号
    django缓存
    CSRF的攻击与防范
    cookie和session
    http协议之Request Headers
    ajax参数详解
  • 原文地址:https://www.cnblogs.com/Ugly-bear/p/8692419.html
Copyright © 2020-2023  润新知