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

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

 

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

 

 

 

 

 

 

 

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

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

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

 

posted @ 2021-04-29 11:14  哦克Oak  阅读(120)  评论(0编辑  收藏  举报