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

news2025/3/1 21:27:22
       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 等。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/703796.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

蓝奥声开发高性价比智能wifi插座进军智能家居

智能硬件的大潮袭来让智能家居这一并不新鲜的概念再次火热起来,关于智能家居的各种场景的描述给了我们很大的想象空间,然而落到实处真正开始走进生活时却又显得那么骨感,一时间作为智能家居的控制中介,小巧实用智能插座就成为家居…

多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab粒子群算法(PSO)优化混合核极限学习机(HKELM)分类预测,多特征输入模型,PSO-HKELM分类预测 多特征输入单输出的二分类及多分类模型。程序内注释详细,直接替换数据就可以用。程序语言为matl…

C++ 内联函数基本概念学习

https://blog.csdn.net/bcbobo21cn/article/details/71305186 这里是一些内联函数示例;有时间再逐个看; 学习一下内联函数的基本概念; 其基本概念有三点; 函数调用都有开销;如果函数体代码比较多,那么…

物业租赁管理系统

物业租赁管理系统是现代宏观经济下的必备产品。随着城市化的加速和移民进城的人口数量的增加,房屋租赁业务市场得到了前所未有的爆发式增长。在这个市场中,物业租赁管理系统成为了各大物业公司的重要工具,有助于物业公司更加有效地管理各种房…

Python_类对象、实例对象、类属性、实例属性、类方法、实例方法

目录 认识类对象、实例对象、类属性、实例属性、类方法、实例方法 类对象实例化过程中的内存分配说明 认识类对象、实例对象、类属性、实例属性、类方法、实例方法 类对象:定义的类就是类对象实例对象:类对象实例化后就是实例对象类属性:定…

HarmonyOS/OpenHarmony应用开发-Stage模型应用程序包结构

基于Stage模型开发的应用,经编译打包后,其应用程序包结构如下图应用程序包结构(Stage模型)所示。开发者需要熟悉应用程序包结构相关的基本概念。 在开发态,一个应用包含一个或者多个Module,可以在DevEco S…

web自动化测试思路及实战:PO设计模式介绍

Page Objects 设计模式 Page Objects概念: Page Objects是指UI界面上用于与用户进行交互的对象 pageobjects 设计模式概念: pageobjects 模式是Selenium中的一种测试设计模式,主要是将每一个页面设计为一个Class,其中包含页面…

vue3 拖拽实现,最简单的demo

入门教程&#xff0c;后续有时间会慢慢更新&#xff0c;下面是一个简单demo实现拖拽功能 <template><div><div ref"targetDom" id"div" dragenter"dragenter">我是可放置目标</div><p id"drag" draggable…

声明式事务

1.回顾事务 把一组业务当成一个业务来做&#xff1a;要么都成功&#xff0c;要么都失败&#xff01;事务在项目开发中&#xff0c;十分的重要&#xff0c;涉及到数据的一致性问题&#xff0c;不能马虎&#xff01;确保完整性和一致性&#xff1b; 事务ACID原则 原子性一致性…

基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

value-initialization of reference type ‘nlohmann::basic_json<>’的错误

使用json出现这个错误&#xff0c;是因为gcc的版本问题&#xff0c;我的是4.8版本 解决办法就是更改gcc版本&#xff0c;我更改的版本是9.3 参考更改版本(3条消息) 【Linux基础】CentOS 7环境下安装高版本GCC (gcc/g 9.3)_centos7gcc版本_宁海没有七号公园的博客-CSDN博客

leetcode验证回文字符串

链接: 验证回文字符串 class Solution { public:bool isLetterOrNumber(char ch){return (ch>a && ch<z)|| (ch> 0 && ch < 9);}bool isPalindrome(string s) {//大写字母转换成小写for(auto& ch : s){if(ch> A && ch < Z){ch…

POI导出Excle工具类(反射读取Java类)

文章目录 简介操作Excel相关组件使用工具类 简介 POI是Apache软件基金会用Java编写的免费开源的跨平台的 Java API&#xff0c;Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能。 所以POI的主要功能是可以用Java操作Microsoft Office的相关文件&#xff0…

【uniapp开发小程序】点击获取手机号(使用@getphonenumber)

一、实现效果 二、代码实现&#xff1a; <template><view><view class"shopadd" v-if"info.mobile">{{info.mobile}}</view><button class"getNumber" v-else open-type"getPhoneNumber" getphonenumber…

linux php 内置服务器测试 phpinfo

环境&#xff1a;linux 操作系统&#xff0c;有图形化界面&#xff0c;有浏览器 php -S localhost:8000直接使用 -S 命令选项&#xff0c;然后指定地址及端口号&#xff0c;我们就可以运行起来一个 PHP 内置的简易WEB服务器。默认情况下&#xff0c;这个地址会找当前目录下的 …

干货|三个维度详解 Taier 本地调试原理和实践

在平时和开发者们交流的过程中&#xff0c;发现许多开发朋友尤其是新入门 Taier 的开发者&#xff0c;对于本地调试都有着诸多的不理解和问题。本文就大家平时问的最多的三个问题&#xff0c;服务编译&#xff0c;配置&本地运行&#xff0c;如何在 Taier 运行 Flink-standa…

46 # 可读流 readStream

上一节实现了文件拷贝功能&#xff0c;其中的读和写的操作都耦合在一起了&#xff0c;能不能实现一个方法&#xff0c;可以用一行搞定&#xff0c;这里涉及到流里的 pipe 流 流是有方向的&#xff0c;先读出来再写&#xff0c;node 中实现了流的模块&#xff08;stream&#…

记一次使用MySQL数据库ORM为 SqlSugar 事务无效的处理过程

在项目中使用了开源代码框架admin.net &#xff0c;其使用的数据库ORM为SqlSugar 使用以下代码执行事务理论上应该有回滚发生&#xff0c;但数据任然删除了 [UnitOfWork][ApiDescriptionSettings(Name "Delete")] [HttpPost][DisplayName("删除菜单")]p…

linux上搭建nfs服务

NFS&#xff08;Network File System&#xff09;&#xff1a;它最大的功能就是可以通过网络&#xff0c;让不同的机器、不同的操作系统可以共享彼此的文件。 NFS服务器可以让PC将网络中的NFS服务器共享的目录挂载到本地端的文件系统中&#xff0c;而在本地端的系统中来看&…

测试背了4年“锅“,测试缺陷总结整理(细致)“锅“终丢掉了...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 缺陷分析也是测试…