java modCount和fail-fast
Posted natian-ws
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java modCount和fail-fast相关的知识,希望对你有一定的参考价值。
在迭代遍历线程不安全的集合的时候,如ArrayList,如果其他线程修改了该集合,那么将抛出ConcurrentModificationException,这就是 fail-fast 策略。
modCount记录了集合的修改次数,在迭代器初始化过程种会将这个值赋给迭代器的expectedModCount,在迭代过程中判断modCount是否和exceptedModCount相等,如果其他线程在这过程中修改了modCount,势必modCount!=exceptedModCount。比如,删除元素:
在迭代过程种删除元素的时候会验证modCount
fail-fast机制,是一种错误检测机制。它只能被用来检测错误,因为JDK并不保证fail-fast机制一定会发生。
以上是关于java modCount和fail-fast的主要内容,如果未能解决你的问题,请参考以下文章
LinkedList之modCount和expectedModCount
Java Concurrentmodificationexception异常原因和解决方法