ConcurrentHashMap(JDK1.7版)
文章目录
由于HashMap线程不安全和HashTable效率低下,为了在并发环境下可以有线程安全的高效的Hash集合可以使用,产生了ConcurrentHashMap。支持检索的完全并发和可调整的预期更新并发的哈希表。
- ConcurrentHashMap(JDK1.7版)
- 组成
- 常量值
- 内部类
- HashEntry
- Segment
- 构造函数
- 主要方法
- 构造函数
- 数据结构
- 主要方法
- PUT过程
- put下的并发问题
- GET过程
- get下的并发问题
在JDK1.5~1.7版本,Java使用了分段锁机制实现ConcurrentHashMap。在使用中发现最大并发度受Segment的个数限制。因此,在JDK1.8中,ConcurrentHashMap的实现原理摒弃了这种设计,而是选择了与HashMap类似的数组+链表+红黑树的方式实现,而加锁则采用CAS和synchronized实现。
组成 常量值 /**
* 此表的默认初始容量,在构造函数中未另行指定时使用。
*/
static final int DEFAULT_INITIAL_CAPACITY = 16;
/**
* 此表的默认加载因子,在构造函数中未另行指定时使用。
*/
static final float DEFAULT_LOAD_FACTOR = 0.75f;
/**
* 此表的默认并发级别,在构造函数中未另行指定时使用。
*/
static final int DEFAULT_CONCURRENCY_LEVEL = 16;
/**
* 最大容量,如果一个更高的值由任何一个带参数的构造函数隐式指定时使用。
* 必须是 2
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?