关于集合的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,据我的理解,主要是用来做最大努力保证集合结构在并发环境下不被改变,尽可能保证集合结构不受线程之间相互影响

0
3
luyuni
回复
翔仔
嗯嗯~ 我也是今天看见深入理解Java虚拟机并发那章突然才理解存在的意义~ 就来求教一下~
2019-03-15
共3条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8427 学习 · 1870 问题

查看课程