CopyOnWriteArrayList 可以用于什么应用场景?
2024-09-08 15:44:40
CopyOnWriteArrayList(免锁容器)的好处之一是当多个迭代器同时遍历和修改这
个列表时,不会抛出 ConcurrentModificationException。在
CopyOnWriteArrayList 中,写入将导致创建整个底层数组的副本,而源数组将保
留在原地,使得复制的数组在被修改时,读取操作可以安全地执行。
1、由于写操作的时候,需要拷贝数组,会消耗内存,如果原数组的内容比较多的
情况下,可能导致 young gc 或者 full gc;
2、不能用于实时读的场景,像拷贝数组、新增元素都需要时间,所以调用一个 set
操作后,读取到数据可能还是旧的,虽然 CopyOnWriteArrayList 能做到最终一致
性,但是还是没法满足实时性要求;
CopyOnWriteArrayList 透露的思想
1、读写分离,读和写分开
2、最终一致性
3、使用另外开辟空间的思路,来解决并发冲突
最新文章
- IE11兼容性问题修改
- Canvas: Out of system resources
- Objective-C编码规范:26个方面解决iOS开发问题(转)
- [家里蹲大学数学杂志]第053期Legendre变换
- Apache Shiro权限框架在SpringMVC+Hibernate中的应用
- Android之Http网络编程(二)
- ☀【JS】eval
- 【转】python删除文件里包含关键词的行
- 基于python的互联网软件测试开发(自动化测试)-全集合
- js:如何在循环异步请求的每次返回中添加想要的值
- KendoUI 基础:Grid 绑定template展示
- jdk1.8新特性 : 接口中可以有普通方法(非静态方法)和静态方法 , 颠覆了之前我的理解 : 接口中只能有共有常量和抽象方法的概念,后面必须要加一句jdk1.7和1..7之前
- 时序数据库InfluxDB使用详解
- elasticsearch常用命令备注
- J2EE导论 | 疑惑篇
- Atcoder Beginner Contest 118 D-Match Matching(完全背包)
- C#代码连接Oracle数据库一段时间以后[connection lost contact]的问题
- php下webservice使用总结
- [APP] Android 开发笔记 003-使用Ant Release 打包与keystore加密说明
- 用 python 来操作 docx, xlsx 格式文件(二)(使用 docx 库操作 docx 格式文件