首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
快速失败(fail-fast)和安全失败(fail-safe
[问答题]
请说说快速失败(fail-fast)和安全失败(fail-safe)的区别?
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(58)
分享
纠错
2个回答
添加回答
10
听风听雨
快速失败,在对集合进行遍历的时候,如果a线程正在对集合进行遍历,而b线程对集合进行修改,那么a线程将会抛出异常。因为快速失败是在原来的集合上直接访问集合内容,在遍历下一个元素之前会对比原来的内容与现在的内容是否相同,相同则返回遍历。抛出异常则终止遍历。 安全失败,先复制原有集合内容,在拷贝的集合上进行遍历,在遍历过程中对原集合所做的修改不能被迭代器检测到,故不会抛出异常
发表于 2019-02-21 11:57:27
回复(1)
1
西瓜同学🏀
Iterator的安全失败是基于对底层集合做拷贝,因此,它不受源集合上修改的影响。java.util包下面的所有的集合类都是快速失败的,而java.util.concurrent包下面的所有的类都是安全失败的。快速失败的迭代器会抛出ConcurrentModificationException异常,而安全失败的迭代器永远不会抛出这样的异常。
发表于 2019-05-05 15:14:34
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
Java
Java工程师
上传者:
小小
难度:
2条回答
58收藏
1631浏览
热门推荐
相关试题
数据链路层滑动窗口机制中发送窗口(...
网络基础
评论
(1)
供受文者使用的具有法定效用的正式文...
京东
产品运营
2018
常识判断
行政
评论
(1)
有关linux线程的描述,正确的是...
京东
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
用一种动物介绍你自己
通用能力
评论
(1)
请你说几个海量数据存储常见问题以及...
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题