hashMap 的多线程安全问题- ConcurrentModificationException

以HashMap为例,它不安全,什么叫不安全。简单理解就是多线程读写可能是脏数据,比如你在A线程读,B线程写了一个新数据,而A线程却不知道。可怕。。
之前有一个奔溃是java.util.ConcurrentModificationException,就是线程不安全的操作,不过更专业的说法是快速失败。HashMap在读的过程中,如果写操作,jdk在处理这种情况是有一个判断的:
即迭代器迭代,检测当前集合大小,如果大小不符合预期则抛出异常达到快速失败的效果。
例如迭代器迭代开始时候是4个key,中间发现变成5个key,这时候迭代器直接失败抛出异常,因为它认为迭代中是读操作,至始至终都应该是不变的集合才能保障效果

posted @   aspirant  阅读(278)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2019-12-20 成年人的世界 每天都这么艰难
点击右上角即可分享
微信分享提示