采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
看过好多面经以及帖子提到这个东西,然而一直理解不了。希望老师补充一下qaq 十分感谢
同学好,这里短短几行文字说不清楚,我尽量说得简洁明了些,其他还得靠同学多多调研和学习。
当多个线程对同一个集合的内容进行操作时,就可能会产生 Fail-fast 事件,(至于符合fail-fast的类,同学可以课下了解一下,这里就不一一列举了)。而当我们在遍历集合的时候,对集合的结构进行了修改(比如说删除遍历的元素),就会抛出ConcurrentModificationException,这便是 Fail-fast机制。
其实现主要是通过对比集合类里面的modCount (修改次数)和expectedModCount(当前的修改次数)来实现的。
Fail-fast,据我的理解,主要是用来做最大努力保证集合结构在并发环境下不被改变,尽可能保证集合结构不受线程之间相互影响
老师我终于懂这个机制存在的意义了你看我说的对不对! 在多线程环境中,如果另一个线程恰好在错误的时间里删除了一个元素导致序号i不可用的话,在访问i数组就会抛出ArrayIndexOutOfBoundException fail-fast的存在就是为了屏蔽这一异常!
同学好,这么理解是对的,主要就是为了防止并发环境下集合结构的突然改变,导致线程间相互影响
嗯嗯~ 我也是今天看见深入理解Java虚拟机并发那章突然才理解存在的意义~ 就来求教一下~
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
2.2k 27
3.2k 22
1.6k 15
1.8k 14
1.6k 14
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号