CopyOnWriteArrayList是List的一个特殊实现,其所有的可变操作(add,set,remove)都通过复制一个新的底层数组来实现。这样通过其提供的Iterator对集合进行访问,不需要进行额外的同步就是线程安全的。
注意:
1.由于进行数组复制需要较大的开销,因此CopyOnWriteArrayList一般作为读操作远大于写操作的集合的实现方式。如监听器列表。
2.CopyOnWriteArrayList的Iterator是只读的,不支持写(add,set,remove)操作。