List
ArrayList非线性安全,体现在多个线程add值的时候数组下标没有相应移动导致值相互覆盖丢失与多线程add值时扩容机制有可能判断失误判断为不需要扩容,导致最终条件的元素超过数组大小越界异常。线性安可使用CopyonwriteList读写分离,写入移除元素时加锁。ArrayList每次扩容siz*3/2+1,遍历时不允许修改List元素个数,每次遍历输出元素时校验修改次数,如果修改次数与开始遍历时不一致时抛出ConcurrentModificationException。每次移除元素后置空最后一个元素方便gc
探讨ArrayList在多线程环境下非线程安全的问题,包括元素覆盖与丢失、扩容机制失误及越界异常。介绍CopyOnWriteList作为解决策略,详解ArrayList的扩容策略与遍历检查机制。

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



