fail-fast 快速失败机制(modcount、ConcurrentModificationException )

相信同学们对 ConcurrentModificationException 很熟悉了,翻译过来就是并行修改异常,这个的原理是什么呢?

我们都知道HashMap 是线程不安全的,我们看下他的源码,重点关注 

线程在每次新增或删除时、modcount都会记录次数;这里请注意,修改时不会。

如果集合被多个线程修改,导致  expectedModCount 与 modCount 不相同,则会抛出异常,这就是fail-fast 快速失败机制,防止继续执行造成的性能损耗。

由此我们也可以得出一个结论:凡是 集合中存在 modCount 变量,说明集合为线程不安全。

原文地址:https://www.cnblogs.com/pzyin/p/14717206.html