CopyOnWriteArrayList简介及优缺点、应用场景说明

乔欣 Java面经 发布时间:2022-11-13 16:06:26 阅读数:9476 1 并发编程面试题(2023最新版)
下文笔者将讲述CopyOnWriteArraylist简介及优缺点及应用场景简介说明,如下所示

CopyOnWriteArrayList简介

CopyOnWriteArrayList是一个并发容器
CopyOnWriteArrayList是线程安全(非复合场景下它是线程安全)

CopyOnWriteArrayList优点

CopyOnWriteArrayList优点:
   当多个迭代器同时遍历和修改这个列表时
     不会抛出 ConcurrentModificationException
  在CopyOnWriteArrayList 中,写入将导致创建整个底层数组的副本
   而源数组将保留在原地
   使得复制的数组在被修改时
   读取操作可以安全地运行

CopyOnWriteArrayList缺点

1.由于写操作的时候,需要拷贝数组,会消耗内存
    如果原数组的内容比较多的情况下
    可能导致young gc或full gc

2.不能用于实时读的场景
    像拷贝数组、新增元素都需要时间
    所以调用一个 set 操作后,读取到数据可能还是旧
    虽然CopyOnWriteArrayList 能做到最终一致性
    但是还是没法满足实时性要求

3.如果数据有点多
   每次add/set都要重新复制数组
   此种方式代码比较大,所以此容器不适用于互联网这种高并发的场景 

CopyOnWriteArrayList适用场景

读多写少的场景非常适合适用 CopyOnWriteArrayList 容器

CopyOnWriteArrayList设计思想

1.读写分离
2.读和写分开
3.最终一致性
4.使用另外开辟空间的思路,来解决并发冲突
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaMianJing/202211/16683268494893.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者