快速失败和安全失败

一、什么是快速失败和安全失败?
1.1:快速失败是指在多线程访问情况下,使用迭代器遍历集合数据时,其他线程对集合进行了修改,此时则会抛出
Concurrent Modification Exception异常。
而安全失败则是,在其他线程想要修改集合数据时,将集合“原件”进行“复印”,使得其他线程修改的是“复印件”,而不影 响其他线程对原集合数据的迭代访问,从而达到安全失败的效果。

二、安全失败的好处:
在对于数据要求并非特别严格,允许数据出现延迟刷新时,安全失败可以保护程序不面临崩溃,而是付出相对较小的代价,解决数据安全问题。类似于论坛的评论等。

三、快速失败与安全失败的区别
3.1:ArrayList所实现的AbstractList接口,会对程序进行快速失败,而CopyOnWriteArrayList所实现的list接口,则是提供安全失败。
————————————————
版权声明:本文为CSDN博主「叶清默」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_43741223/article/details/84403100

原文地址:https://www.cnblogs.com/jieyi/p/12455315.html