大家好我是庆威,一个妄想30岁前年薪百万的北漂程序员。
本专栏是我整理的大厂常见面试题,我会给出回答和解析,希望能帮助到大家
如果觉得有帮助,欢迎来访我的其他专栏:
链接: 从源码探究原理

链接: Java并发编程

链接: SQL–知识及原理

前段时间一个同学去面试,遇到这样一个问题。

fail-safe 机制与 fail-fast 机制分别有什么作用?

他说他听到这个问题的时候,脑子里满脸问号。

额….嗯…(持续几秒后,贴一个搞笑的图,比如 two years latter 之类,然后再配 个一脸蒙蔽。。)

fail-safe 机制与 fail-fast 机制分别有什 么作用

fail-safe 和 fail-fast,是多线程并发操作集合时的一种失败处理机制。

 Fail-fast:表示快速失败,在集合遍历过程中,一旦发现容器中的数据被修改了, 会立刻抛出 ConcurrentModificationException 异常,从而导致遍历失败,像这种情况。

一般会配合迭代器中使用,比如定义一个 Map 集合,使用 Iterator 迭代器进行数据遍历,在遍历过程中,对集合数据做变更时,就会发生 fail-fast。

java.util 包下的集合类都是快速失败机制的。

常见的的使用 fail-fast 方式遍历的容 器有 HashMap 和 ArrayList 等。

 Fail-safe,表示失败安全,也就是在这种机制下,出现集合元素的修改,不会抛 出 ConcurrentModificationException。

原因是采用安全失败机制的集合容器,在遍历时不是直接在集合内容上访问的, 而是先复制原有集合内容, 在拷贝的集合上进行遍历。

由于迭代时是对原集合的拷贝进行遍历,所以在遍历过程中对原集合所作的修改并不能被迭代器检测到,比如,定义了一个 CopyOnWriteArrayList,在对这个集合遍历过程中,对集合元素做修改后,不会抛出异常,但同时也不会打印出增加的元素。

java.util.concurrent 包下的容器都是安全失败的,可以在多线程下并发使用,并发修改。

常 见 的 的 使 用 fail-safe 方 式 遍 历 的 容 器 有 ConcerrentHashMap 和 CopyOnWriteArrayList 等。

面试题:fail-safe 机制与 fail-fast 机制分别有什 么作用相关推荐

  1. 车辆控制器的 Fail Safe功能介绍

    Fail Safe概要 在漆黑的夜路上,一辆开着头灯的汽车经过. 如果控制前照灯的控制器在这种情况下发生故障怎么办? 大灯会熄灭,造成危险吗? 不. 在这种情况下,控制器的"Fail Saf ...

  2. Java - Java集合中的安全失败Fail Safe机制 (CopyOnWriteArrayList)

    文章目录 Pre 概述 fail-safe的容器-CopyOnWriteArrayList add remove函数 例子 缺陷 使用场景 Pre Java - Java集合中的快速失败Fail Fa ...

  3. Fail Fast与Fail Safe的区别

    Fail Fast Fail Fast Iterator在遍历集合时,若该集合发生了结构性的改变,则将抛出 ConcurrentModification 异常.例如: Map<String, S ...

  4. 什么是Fail Fast和Fail Safe?

    这里是目录标题 1. Fail Fast a. 概念 b. 原理 c. 关注点 d. 注意 2. Fail Safe a. 概念 b. 原理 3. Fail Fast 和 Fail Safe的区别 1 ...

  5. fail safe java_Java中快速失败(fail-fast)和安全失败(fail-safe)的区别?

    快速失败(fail-fast): 在用迭代器遍历一个集合对象时,如果遍历过程中对集合对象的内容进行了修改(增加.删除.修改),则会抛出Concurrent Modification Exception ...

  6. 网络安全架构部署:Fail Closed,Fail Open,Fail safe,Fail over是什么意思?

    目录 1.Fail Closed(故障关闭) 故障关闭的用例和好处 部署故障关闭注意事项 2.Fail Open(故障打开) 故障打开的用例及好处 部署故障打开注意事项 3.Fail Safe(故障保 ...

  7. 什么是fail safe IO

    背景 普通IO cell,内置二极管用作ESD保护. 考虑一种应用场景,当芯片只有部分上电的时候.芯片部分IO,是断开电源. 如果芯片IO外接设备,输入给芯片高电平,会导致二极管导通,使得芯片内电源异 ...

  8. 【Java面试题】21 Java中的异常处理机制的简单原理和应用。

    [Java面试题]21 Java中的异常处理机制的简单原理和应用. 参考文章: (1)[Java面试题]21 Java中的异常处理机制的简单原理和应用. (2)https://www.cnblogs. ...

  9. java spi机制_Java 双亲委派机制的破坏—SPI机制

    作者:程序猿微录 出自:TinyRecord 原文:tinyice.cn/articles/123 Java 双亲委派机制的破坏-SPI机制 在Java的类加载机制中,默认的就是双亲委派机制,这种委派 ...

  10. 【JVM】类加载器:双亲委派机制、沙箱安全机制

    · 双亲委派机制.沙箱安全机制是JVM中类加载器系统的相关术语 · 在这之前,应该先了解JVM类加载器系统的相关概念 一.类加载器基础知识 见下图1,java文件首先会被编译成class文件,clas ...

最新文章

  1. 扶梯正确使用_乘坐自动扶梯解释CSS浮动
  2. 图灵五周年真情回馈广大读者,多种买赠活动等着您
  3. 机器学习研究者必知的八个神经网络架构
  4. npm安装出错Unexpected end of input at 1:2307
  5. jsp动作元素include学习
  6. Python新手常见错误汇总|附代码检查清单
  7. 台式电脑主板测试/升级BIOS
  8. linux更改nginx最大访问数,Linux下nginx服务的配置文件nginx.conf中模块的讲解之配置limit_conn_zone来限制并发连接数以及下载速率...
  9. 华为值多少钱?院士倪光南:13000亿美元!超过苹果,碾压阿里!
  10. Action 跳转的方法和详解
  11. oracle 函数可变参数,6.3 带有可变参数的函数
  12. html绝对定位怎么页面居中,html – 如何将绝对定位的元素居中?
  13. 解决adb devices无法连接夜神模拟器
  14. maya_Arnold_Aov分层渲染插件 v1.1.0 更新下载及视频教程
  15. Oracle 数据库 各种索引类型 简单介绍
  16. oracle独占锁表禁止查询,oracle 锁表查询及解决、表字段查询
  17. 【网络】Padavan 路由器固件开启教育网 IPv6
  18. 性能调优之JMH必知必会1:什么是JMH
  19. 《痞子衡嵌入式半月刊》 第 66 期
  20. IT行业的人越来越多,工资为啥却不降反升?

热门文章

  1. OpenCV中Viz模块的安装(VS2015)
  2. 什么是SEO优化-SEO优化工具-SEO优化软件
  3. VR看房:全景图和移动切换的实现
  4. 4天快速落地团队内部的UI组件库
  5. php imap 库_php imap_open 实例教程
  6. 【工具】Excel表格数据不能编辑
  7. 使用Python+PCA+SVM算法实现人脸识别模型
  8. slot具名卡槽和props
  9. 计算机应用基础图文混合排版,《Word 2010图文混合排版》教学设计与课后反思
  10. UE4 Material 101学习笔记——08-12 凹凸和视差贴图/纹理压缩/布料/体积冰/摇曳树叶