首页 > 计算机考试题库 > 计算机工程师面试题库

HashMap 是线程安全的吗,为什么不是线程安全的(最好画图说明多线程 环境下不安全)?

daw12345 计算机工程师面试题库 2022-12-22 14:28:01

不是线程安全的;
如果有两个线程A和B,都进行插入数据,刚好这两条不同的数据经过哈希计算后得到的哈希码是一样的,且该位
置还没有其他的数据。所以这两个线程都会进入我在上面标记为1的代码中。假设一种情况,线程A通过if判断,该
位置没有哈希冲突,进入了if语句,还没有进行数据插入,这时候 CPU 就把资源让给了线程B,线程A停在了if语句
里面,线程B判断该位置没有哈希冲突(线程A的数据还没插入),也进入了if语句,线程B执行完后,轮到线程A执
行,现在线程A直接在该位置插入而不用再判断。这时候,你会发现线程A把线程B插入的数据给覆盖了。发生了线
程不安全情况。本来在 HashMa
……此处隐藏-762个字……请登录点击-阅读全文-查看余下与标题相符的原文-阅读全文下如有下载资源价格提示-请根据提示充值相应点数然后下载资源,如果没有会员下载列表价格提示那全部单篇为3元即可阅读。



广告招租微信avocom-内容正文底部
友情提示:1元等于1点

本文仅代表作者观点,不代表本站立场,信息由网友整理发布请认真鉴别信息真伪。
本文系作者授权发表,未经许可,不得转载,请到会员中心注册会员阅读原文。
本文地址:https://www.daw123.com/info/link/3511825.html

上一篇好文阅读HashSet 是如何保证不重复的

下一篇好文阅读HashMap 的扩容过程

留言与评论(共有 0 条评论)
   
验证码:

在线考试题库答案网

https://www.daw123.com/

| 辽ICP备2021001986号-2

Powered By 答案网 在线考试题库答案网

使用手机软件扫描微信公众号

关注我们可获取更多热点资讯

感谢大家对答案网的长期支持