java - 从不同线程修改集合的元素时,迭代器会抛出 ConcurrentModificationException 吗?
问题描述
假设我们有ArrayList
一些对象,我们正在遍历列表以读取每个对象的特征。ConcurrentModificationException
如果列表中的对象在任何时候被另一个线程修改(在迭代器到达对象之前,它在对象上以及遍历对象之后),迭代器是否会抛出 a ?
在写这篇文章时,我意识到列表实际上包含对对象的引用,并且在修改对象时它们保持不变,所以迭代器不应该 throw ConcurrentModificationException
,但是在迭代时读取的数据可能不一致,除非实际读取过程是同步的。谁能证实这一点?
解决方案
推荐阅读
- json - rust serde - 在反序列化时展平路径
- html - 用于滚动条的跨平台 CSS
- ios - 是否可以在没有源代码的情况下分发 iOS 应用程序
- html - 如何在父级内正确滚动内联元素
- powershell - Powershell 显示所有已停止的自动服务并尝试启动这些服务
- php - 改进 CSV 产品导入 -> Array Category Query by name
- amazon-s3 - 如何通过机器人框架运行 AWS CLI 命令?
- c# - 如何在 TableLayoutPanel 中找出控件的索引?
- pipeline - 在 ADF Data Wrangle 中剥离回车不起作用
- c# - 如何让我的博览会(反应原生)android 模拟器使用 localhost 访问 C# .net 后端 api?