HashMap 多线程环境下线程不安全

学习笔记:

  1. HashMap多线程环境下线程不安全主要原因是put(key,value)操作会引起死循环,hashMap中的 Entry 链表产生环形数据结构,next往下找的时候,永远找不到最后一个,所以导致死循环。
  2. ConcurrentHashMap中如何定位某个元素在哪个位置,如何保证线程安全?

          JDK1.7及以前:

          get()方法定位segment:key的hashcode 进行再散列值的高位 取模

          定位table:key的hashcode进行再散列值 取模

          依次扫描链表,要么找到元素,或者返回null

发布了7 篇原创文章 · 获赞 1 · 访问量 328

猜你喜欢

转载自blog.csdn.net/baidu_36882394/article/details/103384570