美文网首页
为什么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相关

    HashMap是数组+链表 1.HashMap不是线程安全,为什么不是线程安全的呢? 多线程put,多线程reha...

  • 专题一 Hashtable、ConcurrentHashMap

    线程安全的HashMap,ConcurrentHashMap HashMap是线程安全的吗?: 不是。多线程环境下...

  • HashMap问答

    HashMap是不是线程安全? 不是线程安全的。 为什么不安全? 线程不安全的两个添加是,数据可共享、可修改。Ha...

  • HashMap / HashTable / Concurrent

    HashMap与HashTable: HashMap不是线程安全的,HashTabe是线程安全的,并发环境中使用H...

  • HashMap和HashTable

    1.HashMap不是线程安全的,HashTable是线程安全的一个Collection。 2.HashMap允许...

  • ConcurrentHashMap源码分析

    1. 为什么需要ConcurrentHashMap HashMap不是线程安全的,多线程环境下使用会导致CPU占用...

  • 记录面试map

    1.hashmap数据结构?是线程安全吗?为什么不是线程安全?1.8为什么用黑红树?1.8为什么大于8使用红黑树?...

  • 2018-03-08 面试随笔——记录一些面试中碰到的问题(初级

    Q:为什么HashMap是非线程安全的?在什么情况下会发生非线程安全问题? A:HashMap是非同步的,一个线程...

  • 面试题收集

    一面HashMap 是线程安全的吗?Hashtable为什么是线程安全的? ConcurrentHashmap怎么...

  • 阿里

    HashMap、HashTable和ConcurrentHashMap HashMap不是线程安全的,Key和Va...

网友评论

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

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