首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
快速失败(fail-fast)和安全失败(fail-safe
[问答题]
请说说快速失败(fail-fast)和安全失败(fail-safe)的区别?
添加笔记
求解答(0)
邀请回答
收藏(58)
分享
纠错
2个回答
添加回答
1
西瓜同学🏀
Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常。
发表于 2019-05-05 15:14:34
回复(0)
更多回答
10
听风听雨
快速失败,在对集合进行遍历的时候,如果a线程正在对集合进行遍历,而b线程对集合进行修改,那么a线程将会抛出异常。因为快速失败是在原来的集合上直接访问集合内容,在遍历下一个元素之前会对比原来的内容与现在的内容是否相同,相同则返回遍历。抛出异常则终止遍历。 安全失败,先复制原有集合内容,在拷贝的集合上进行遍历,在遍历过程中对原集合所做的修改不能被迭代器检测到,故不会抛出异常
发表于 2019-02-21 11:57:27
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
2条回答
58收藏
1693浏览
热门推荐
相关试题
在下列不同进制中的四个数,最小的一...
C++
评论
(1)
来自
顺丰科技2019秋招嵌入...
有以下C++代码: struct ...
C++
评论
(2)
以下有关循环神经网络(RNN)的说...
深度学习
评论
(1)
在 Linux 中,有一个名为 t...
Linux
Linux
评论
(1)
假设有一个表有联合索引a,b,c。...
SQL
评论
(1)
来自
2024年秋招-蚂蚁集团...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题