Java集合的快速失败机制 “fail-fast”?
2021/12/2 11:07:06
本文主要是介绍Java集合的快速失败机制 “fail-fast”?,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
是java集合的一种错误检测机制,当多个线程对集合进行结构上的改变的操作 时,有可能会产生 failfast 机制。
例如:假设存在两个线程(线程1、线程2),线程1通过Iterator在遍历集合A中 的元素,在某个时候线 程2修改了集合A的结构(是结构上面的修改,而不是简 单的修改集合元素的内容),那么这个时候程序 就会抛出ConcurrentModificationException 异常,从而产生fail-fast机制。会显式的体现修改异常。
原因:迭代器在遍历时直接访问集合中的内容,并且在遍历过程中使用一个 modCount 变量。集合在 被遍历期间如果内容发生变化,就会改变modCount 的值。每当迭代器使用hashNext()/next()遍历下一 个元素之前,都会检测 modCount变量是否为expectedmodCount值,是的话就返回遍历;否则抛出 异常,终止遍历。
解决办法:
1. 在遍历过程中,所有涉及到改变modCount值的地方全部加上 synchronized。
2. 使用CopyOnWriteArrayList来替换ArrayList
这篇关于Java集合的快速失败机制 “fail-fast”?的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求