面试:CopyOnWriteArrayList

ops/2024/10/18 0:20:05/

问题:

ArrayList 是线程不安全的,同一时间写和读会造成线程不安全,怎么解决呢?

答:可以使用CopyOnWriteList。

CopyOnWriteList特点

  1. CopyOnWriteArrayList是Java中的一种并发集合类,它实现了List接口,并且是线程安全的。它的特点是在进行写操作时,会创建一个新的副本来进行操作,而不是直接修改原有的集合。

  2. CopyOnWriteArrayList的实现机制是在写操作时,先将原有的集合进行复制,然后对新的副本进行修改操作,最后将修改后的副本替换原有的集合。这样可以保证在写操作时不会影响到正在进行读操作的线程,保证了读写的并发性。

  3. 由于每次写操作都会复制整个集合,所以CopyOnWriteArrayList的写操作性能较低,适用于读操作较多而写操作较少的场景。它适合用于一些读多写少的并发场景,比如缓存、观察者模式等。

  4. 需要注意的是,CopyOnWriteArrayList虽然是线程安全的,但是它的迭代器并不支持修改操作,如果需要对集合进行修改,需要使用特殊的方法来操作。此外,由于每次写操作都会创建一个新的副本,所以CopyOnWriteArrayList占用的内存较大,需要根据具体场景进行权衡。

核心原理

主要是add方法

在进行写操作时,会创建一个新的副本来进行操作,而不是直接修改原有的集合。

public boolean add(E e) {final ReentrantLock lock = this.lock;lock.lock();try {Object[] elements = getArray();int len = elements.length;// 这里复制了原来数组,在新数组上进行写操作,原数组仍然可以读,Object[] newElements = Arrays.copyOf(elements, len + 1);newElements[len] = e;setArray(newElements);return true;} finally {lock.unlock();}}


http://www.ppmy.cn/ops/38612.html

相关文章

DNS 解析在网络传输中有什么意义?

首先我们先说说什么是DNS解析? DNS解析是将域名解析为对应的IP地址的过程。DNS它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS解析的过程就是寻找哪个IP地址对应你所输入的网址,然后将网页内容返回给用户…

6份不用辞职就能赚钱的副业,上班族必看!

在这个经济浪潮中,生活成本的上升与工资增长的缓慢形成了鲜明对比。对于许多上班族来说,寻找额外收入的途径显得尤为迫切。 今天,就让我们一起探索那些适合在业余时间开展的副业,为你的财务自由之路添砖加瓦。 1. 闲鱼二手手机售卖…

nginx代理原理(端口复用)探究

前言:对于一些常用的插件,我们应该学会如何使用。同时,其实现原理也要进行深究,可以为其他的项目开发做借鉴。 探究方案: 一、发布两个不同的服务,这两个服务的端口不致 二、配置nginx,让这两…

TB交易开拓者旗舰版自动交易的设置

本文针对TB交易开拓者旗舰版V6.0.7.0(期货程序化交易软件下载 - 交易开拓者),目前网上没有自动交易设置的完整教程,特写此篇。 1. 设置期货账户的自动登录和登出。点击菜单“文件/系统设置”,然后在“安全”tab做如下设置: 2 设置你的期货账…

前端代码优化

嗯,最近pc更新了一版,目前没有什么活,就检查自己写的代码,去优化,发现有一个函数if嵌套了很多层,重复的代码也有很多,所以我就把重复的进行来了提取,以及一些其他优化 原代码 可以…

Linux 常用命令

💖 系统信息 top:实时显示系统进程和资源使用情况。当线上报警CPU占用率过高,load飙高的时候,我们通常会先上去使用top命令看一下具体哪些进程耗费了资源。 df:显示磁盘空间使用情况。当线上服务器报警磁盘满的时候&a…

STM32--4G DTU 及 阿里云

模块概述 ATK-IDM750C/IDM751C 是正点原子(ALIENTEK)团队开发的一款高性能 4G Cat1 DTU 产品, 支持移动 4G、联通 4G 和电信 4G 手机卡。它以高速率、低延迟和无线数传作为核心功能, 可快速解决应用场景下的无线数传方案。 它支持 TCP/UDP/HTTP/MQTT/DN…

Windows系统下修改文件夹和U盘图标实战

文章目录 知识学习一、修改磁盘图标第一步、新建.INF文件第二步、放置图标第三步、重新插入U盘第四步、隐藏与显示文件知识拓展 二、修改文件夹图标设置图标样式恢复图标样式 在日常办公中使用的是windows系统,系统默认的文件图标都一样,不利于分类整理&…