CopyOnWriteArrayList 可以用于什么应用场景?
Posted programb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CopyOnWriteArrayList 可以用于什么应用场景?相关的知识,希望对你有一定的参考价值。
CopyOnWriteArrayList(免锁容器)的好处之一是当多个迭代器同时遍历和修改这
个列表时,不会抛出 ConcurrentModificationException。在
CopyOnWriteArrayList 中,写入将导致创建整个底层数组的副本,而源数组将保
留在原地,使得复制的数组在被修改时,读取操作可以安全地执行。
1、由于写操作的时候,需要拷贝数组,会消耗内存,如果原数组的内容比较多的
情况下,可能导致 young gc 或者 full gc;
2、不能用于实时读的场景,像拷贝数组、新增元素都需要时间,所以调用一个 set
操作后,读取到数据可能还是旧的,虽然 CopyOnWriteArrayList 能做到最终一致
性,但是还是没法满足实时性要求;
CopyOnWriteArrayList 透露的思想
1、读写分离,读和写分开
2、最终一致性
3、使用另外开辟空间的思路,来解决并发冲突
以上是关于CopyOnWriteArrayList 可以用于什么应用场景?的主要内容,如果未能解决你的问题,请参考以下文章