欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

Fail-fast 和 Fail-safe 机制

发布时间:2025/3/12 编程问答 37 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Fail-fast 和 Fail-safe 机制 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

fail-fast 和 fail-safe 的区别

从字面意思来看 fail-fast 是快速失败,fail-safe 是安全失败,这都是集合类对于并发读写时的一种应对机制。

  • fail-fast,广泛应用于 java.util 下的集合类中,其机制为在使用迭代器遍历的过程中,如果此时集合对象的结构被改变(即插入、删除元素时, modCount 的值发生变化。替换元素的值不会发生改变)后,会抛出 ConcurrentModificationException (并发修改异常)的异常。这是一种不支持并发读写的机制,优点是不会在遍历时额外消耗资源;且保证读到的数据时最新的数据。
  • fail-safe,广泛应用于 java.concurrent 下的集合类中,其机制为在使用迭代器遍历时,会创建一个此时集合的视图来供遍历,而不是在源数据上进行遍历,所以在遍历时如果集合对象的结构被改变,不会抛出异常。这是一种支持并发读写的机制,缺点是每次遍历时都会创建视图,会消耗更多的资源;且很有可能读不到最新的值。

总结

以上是生活随笔为你收集整理的Fail-fast 和 Fail-safe 机制的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。