栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

迭代ConcurrentHashMap值线程安全吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

迭代ConcurrentHashMap值线程安全吗?

这是什么意思?

这意味着你从中获得的每个迭代器

ConcurrentHashMap
都旨在由单个线程使用,并且不应被传递。这包括for-each循环提供的语法糖。

如果我尝试同时使用两个线程迭代地图,会发生什么情况?

如果每个线程都使用自己的迭代器,它将按预期工作。

如果在迭代过程中从地图上放置或删除值,会发生什么情况?

保证这样做不会使事情中断(这是“并发” ConcurrentHashMap含义的一部分)。但是,不能保证一个线程将看到另一线程执行的映射更改(无需从映射中获取新的迭代器)。保证迭代器在创建地图时能够反映其状态。进一步的更改可能会反映在迭代器中,但不一定如此。

总之,类似

for (Object o : someConcurrentHashMap.entrySet()) {
// …
}
几乎每次看到它都会好(或至少很安全)。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/420375.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号