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

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

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

用synchronized、CopyOnWriteArrayList

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

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

相关推荐
萤丰信息1 分钟前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
曹牧27 分钟前
Eclipse为方法添加注释
java·ide·eclipse
是小胡嘛31 分钟前
C++之Any类的模拟实现
linux·开发语言·c++
我叫张小白。1 小时前
Spring Boot拦截器详解:实现统一的JWT认证
java·spring boot·web·jwt·拦截器·interceptor
csbysj20201 小时前
Vue.js 混入:深入理解与最佳实践
开发语言
Gerardisite3 小时前
如何在微信个人号开发中有效管理API接口?
java·开发语言·python·微信·php
Want5953 小时前
C/C++跳动的爱心①
c语言·开发语言·c++
coderxiaohan4 小时前
【C++】多态
开发语言·c++
gfdhy4 小时前
【c++】哈希算法深度解析:实现、核心作用与工业级应用
c语言·开发语言·c++·算法·密码学·哈希算法·哈希
Warren984 小时前
Python自动化测试全栈面试
服务器·网络·数据库·mysql·ubuntu·面试·职场和发展