CopyOnWriteArrayList 也是实现List接口
他是在concurrent 包里面,所以他是线程安全的,其他的基本和ArrayList很想。
他线程安全是用ReentrantLock 实现的,他内部有一个ReentrantLock对象,然后在增删改的时候都操作这个锁对象,所以他在多线程里面是安全的、
之前还有1个Vector 他的增删改也加了synchronized,但是这个只不过是方法锁。他只能保证在多线程的时候,调用通一个方法有原子性,但是比如一个线程调用add,一个线程调用remove,这个就不安全了。
特性
1.add 方法,每次添加元素都复制一个新的数组出来,然后在复给成员变量array,
2.get 方法,获取