CopyOnWriteArrayList(免锁容器)的好处之一是当多个迭代器同时遍历和修改这 数组
个列表时,不会抛出 ConcurrentModificationException。在 安全
CopyOnWriteArrayList 中,写入将致使建立整个底层数组的副本,而源数组将保 并发
留在原地,使得复制的数组在被修改时,读取操做能够安全地执行。 spa
一、因为写操做的时候,须要拷贝数组,会消耗内存,若是原数组的内容比较多的 内存
状况下,可能致使 young gc 或者 full gc; it
二、不能用于实时读的场景,像拷贝数组、新增元素都须要时间,因此调用一个 set io
操做后,读取到数据可能仍是旧的,虽然 CopyOnWriteArrayList 能作到最终一致 容器
性,可是仍是无法知足实时性要求; List
CopyOnWriteArrayList 透露的思想 遍历
一、读写分离,读和写分开
二、最终一致性
三、使用另外开辟空间的思路,来解决并发冲突