关于集合的fail-fast机制
来源:10-5 ConcurrentHashMap
luyuni
2019-02-23
看过好多面经以及帖子提到这个东西,然而一直理解不了。希望老师补充一下qaq
十分感谢
写回答
1回答
-
翔仔
2019-02-24
同学好,这里短短几行文字说不清楚,我尽量说得简洁明了些,其他还得靠同学多多调研和学习。
当多个线程对同一个集合的内容进行操作时,就可能会产生 Fail-fast 事件,(至于符合fail-fast的类,同学可以课下了解一下,这里就不一一列举了)。而当我们在遍历集合的时候,对集合的结构进行了修改(比如说删除遍历的元素),就会抛出ConcurrentModificationException,这便是 Fail-fast机制。
其实现主要是通过对比集合类里面的modCount (修改次数)和expectedModCount(当前的修改次数)来实现的。
Fail-fast,据我的理解,主要是用来做最大努力保证集合结构在并发环境下不被改变,尽可能保证集合结构不受线程之间相互影响
032019-03-15
相似问题