Fail-fast 和 Fail-safe 机制
生活随笔
收集整理的这篇文章主要介绍了
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 机制的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: php配置mysql集群_mysql的集
- 下一篇: 如何计算像素当量_基于非线性标定的桥梁裂