美文网首页
为什么HashMap不是线程安全的?

为什么HashMap不是线程安全的?

作者: 憨憨二师兄 | 来源:发表于2020-05-14 22:32 被阅读0次

    2020-5-14

    今天,我在这篇博文 JDK1.7和JDK1.8中HashMap为什么是线程不安全的? 中,温习了 HashMap 高频的面试考点之一:为什么HashMap是线程不安全的。

    总体来讲:

    1. 在JDK1.7版本,扩容操作中进行数据转换采用的是链表的头插法,所以会造成链表成环,CPU百分之百,也就是我们所说的死循环问题。
    2. 在JDK1.8版本,虽然进行了优化,直接将原链表的数据放到新的数组,不会造成死循环,但是在putval操作中,还是有可能导致数据覆盖,所以也是线程不安全的。
    3. 解决方法,在多线程中应该使用 ConcurrentHashMap 替代 HashMap。

    相关文章

      网友评论

          本文标题:为什么HashMap不是线程安全的?

          本文链接:https://www.haomeiwen.com/subject/zmhfohtx.html