java面试-0203-java集合并发修改异常、快速/安全失败原理、解决方法?

fail-fast:当多个线程对集合并发修改,或者遍历时修改结构(添加、删除、修改元素),迭代器抛出ConcurrentModificationException

集合使用modCount记录结构修改次数,迭代器遍历时将modCount赋值给expectedmodCount。如果遍历期间结构被修改,modCount会改变。每次调用hasNext()或next()时,迭代器检查到modCount不等于expectedmodCount时会抛出异常并终止遍历

用synchronized、CopyOnWriteArrayList

fail-safe,在复制的集合上进行遍历。~不会被迭代器检测到,所以迭代器不抛异常,如CopyOnWriteArrayList

迭代器不能访问到修改后的内容

相关推荐
csbysj20208 小时前
AngularJS 模块
开发语言
独好紫罗兰8 小时前
对python的再认识-基于数据结构进行-a003-列表-排序
开发语言·数据结构·python
wuhen_n9 小时前
JavaScript内置数据结构
开发语言·前端·javascript·数据结构
不会代码的小测试9 小时前
UI自动化-POM封装
开发语言·python·selenium·自动化
roman_日积跬步-终至千里9 小时前
【Java并发】Java 线程池实战:警惕使用CompletableFuture.supplyAsync
java·开发语言·网络
毕设源码-钟学长9 小时前
【开题答辩全过程】以 基于Springboot的扶贫众筹平台为例,包含答辩的问题和答案
java·spring boot·后端
lsx2024069 小时前
C++ 基本的输入输出
开发语言
CodeSheep程序羊9 小时前
拼多多春节加班工资曝光,没几个敢给这个数的。
java·c语言·开发语言·c++·python·程序人生·职场和发展
独好紫罗兰9 小时前
对python的再认识-基于数据结构进行-a002-列表-列表推导式
开发语言·数据结构·python
I'mChloe9 小时前
PTO-ISA 深度解析:PyPTO 范式生成的底层指令集与 NPU 算子执行的硬件映射
c语言·开发语言