栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Map线程安全问题

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

Map线程安全问题

1.简介

由于HashMap是一个线程不安全的容器,主要体现在容量大于总量负载因子发生扩容时会出现环形链表从而导致死循环.

因此需要支持线程安全的并发容器concurrentHashMap.

2.HashMap线程安全问题:

jdk1.8之前:

Hash底层是数组和链表结合在一起使用也就是链表散列

jdk1.8之后:

jdk1.8在解决哈希冲突时有了较大的变化,当链表长度大于阈值(默认为8)时,将链表转化为红黑树,以减少搜索时间。

![JDK1.8之后的HashMap底层数据结构](http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-22/67233764.jpg)

2.原理

jdk1.7之前:

concurrentHashMap采用了分段锁技术.

jdk1.8后:

抛弃了原有的分段锁,采用了CAS+synchronized,来保证并发安全.

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

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

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