CopyOnWriteArrayList实现了多线程并发的读,只允许单线写主要实现思路在添加新元素时复制出一个新的数组,然后在新的数组内执行添加操作,在读取元素时读旧的数组,所以在大量的读,少量的写时CopyOnWriteArrayList性能较高。
add()方法:
添加新元素至集合时,会将当前数组Copy
复制新数组,并将新元素添加至新数组,最后替换原数组。执行过程中,使用ReentrantLock
加锁,保证线程安全,避免多个线程复制数组。
set()方法:
remove()方法:
删除指定下标元素。根据指定下标,从原数组中,Copy
复制其它元素至新数组,最后替换原数组。