CopyOnWriteArrayList 可以用于什么应用场景?

CopyOnWriteArrayList(免锁容器)的好处之一是当多个迭代器同时遍历和修改这 

个列表时不会抛出 ConcurrentModificationException。 

CopyOnWriteArrayList 写入将导致创建整个底层数组的副本而源数组将保 

留在原地使得复制的数组在被修改时读取操作可以安全地执行

1、由于写操作的时候需要拷贝数组会消耗内存如果原数组的内容比较多的 

情况下可能导致 young gc 或者 full gc;

2、不能用于实时读的场景像拷贝数组新增元素都需要时间所以调用一个 set

操作后读取到数据可能还是旧的,虽然 CopyOnWriteArrayList 能做到最终一致 

,但是还是没法满足实时性要求

CopyOnWriteArrayList 透露的思想 

1、读写分离读和写分开 

2、最终一致性 

3、使用另外开辟空间的思路来解决并发冲突 

posted @ 2020-10-13 10:06  咔啡  阅读(387)  评论(0编辑  收藏  举报