本文详细介绍CopyOnWriteArrayList,从概述、原理、使用、源码、缺点等方面进行说明
简要介绍下CopyOnWriteArrayList产生的背景
1.Vedtor 和SynchronizedList的锁力度比较大,基本上可以认为都是加锁在方法层面,并发度降低。(只有一把锁)
2.CopyOnWriteArrayList降低了锁的力度,并且在迭代时是可以编辑的。
3.CopyOnWrite容器中其他的实现,如:CopyOnWriteArraySet
1.读操作需要足够快,写操作慢一点没啥关系;比如系统中黑名单、监听器(监听很多的时间,读的场景多)
我们都知道读写锁的工作原理,即为多读一写。
为了将读的性能提高到最大,CopyOnWrite不再加读锁,只提供写写的互斥操作。
首先我们演示ArrayList在迭代的时候进行了新增或删除,这里我们给出结论:ArrayList在迭代的时候不允许修改,见下代码
我们用CopyOnWriteArrayList在迭代的时候进行下删除获取新增。
原文:https://www.cnblogs.com/cnxieyang/p/12766231.html