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

set()方法:

remove()方法:
删除指定下标元素。根据指定下标,从原数组中,Copy复制其它元素至新数组,最后替换原数组。

本文详细介绍了CopyOnWriteArrayList的工作原理及其核心方法add(), set() 和 remove() 的实现过程。CopyOnWriteArrayList通过在写入时复制的方式实现线程安全,适合大量读取少量写入的场景。

被折叠的 条评论
为什么被折叠?



