读写分离

写操作在一个复制的数组上,读操作在原数组进行,读写分离,提高并发效率
写操作需要对复制数组加锁,防止并发写入对数据的影响
写操作结束后将原始数组指向新的复制数组

适用场景

适合读多写少的情况,大大提高了读操作的性能

缺陷

  • 实时性较差,数据可能出现不一致的情况
  • 内存占用,写操作需要复制一个新的数组,是的内存的占用为原来的两倍

所以CopyOnWriteArrayList不适合内存敏感以及对实时性要求很高的场景。