栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【什么是fail-safe,fail-fast,有什么区别?】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【什么是fail-safe,fail-fast,有什么区别?】

什么是fail-safe?

fail-safe(安全失败)机制在遍历时不是直接在集合内容上访问的,而是先复制原有集合内容,在拷贝的集合上进行遍历,因此它不会抛出java.util.ConcurrentModificationException异常。

java.util.concurrent包下的集合都是 fail-safe安全失败的,可以在多线程下并发使用,并发修改。

什么是fail-fast?

fail-fast(快速失败)机制是Java集合(Collection)中的一种错误机制.

当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件.

例如:当某一个线程A通过iterator迭代器去遍历某集合的过程中,如果集合对象的内容进行了修改(增如、删除、修改)则会抛出ConcurrentModification Exception产生fail-fast事件.

java.util包下的集合类都是快速失败的,不能在多线程下发生并发修改(迭代过程中被修改)。

fail-safe与fail-fast有什么区别

Java.util包中的所有集合类都被设计为fail-fast(快速失败)

java.util.concurrent 中的集合类都为fail-safe(安全失败)的。

Fail-fast迭代器抛出ConcurrentModificationException

Fail-safe迭代器从不抛出ConcurrentModificationException

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/756186.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号