Java 集合中的快速失败(fail-fast)和安全失败(fail-safe)机制
快速失败
采用快速失败机制的集合容器,使用迭代器进行遍历集合时,除了通过迭代器自身的 remove() 方法之外,对集合进行任何其他方式的结构性修改,则会抛出 ConcurrentModificationException 异常。
在 java.util 包下的集合类都采用的是快速失败机制,不能在多线程下发生并发修改(迭代过程中被修改)。
原理
迭代器在遍历时直接访问集合的内容时,因此集合中的内容在遍历的过程中无法被修改。为了保证不被修改,迭代器内部维护了一个 modCount 变量 ,当集合结构改变(添加
转载
2021-01-23 20:02:55 ·
239 阅读 ·
0 评论