文章目录
简介
fail-fast 机制,即快速失败机制,是java集合(Collection)中的一种错误检测机制。当在迭代集合的过程中该集合在结构上发生改变的时候,就有可能会发生fail-fast,即抛出ConcurrentModificationException异常。
它是一种对集合的遍历的错误检测机制,在遍历中途中出现意料之外的修改时,通过unchecked异常暴力的反馈出来。这种机制经常出现在多线程环境下,当前线程会维护一个技术比较器,即expectedModCount,记录已经修改的次数,进入遍历前,把modCount赋值给expectedModCount,如果这两个值不相等,抛出异常。
java-util包下所有集合类都是fail-fast,而concurrent包中的集合类都是fail-safe。
检测是否抛出 ConcurrentModificationException
public E next() {
checkForComodification();
...
}
final void checkForComodification() {
if (modCount != expectedModCount)
throw new ConcurrentModificationException();
}
下面的代码会抛出ConcurrentModificationException
publi