原文:死磕 java集合之ConcurrentHashMap源码分析(二)——扩容

本章接着上一章,链接直达请点我。 初始化桶数组 第一次放元素时,初始化桶数组。 使用CAS锁控制只有一个线程初始化桶数组 sizeCtl在初始化后存储的是扩容门槛 扩容门槛写死的是桶数组大小的 . 倍,桶数组大小即map的容量,也就是最多存储多少个元素。 判断是否需要扩容 每次添加元素后,元素数量加 ,并判断是否达到扩容门槛,达到了则进行扩容或协助扩容。 元素个数的存储方式类似于LongAdder ...

2019-04-10 19:00 1 484 推荐指数:

查看详情

java集合之ArrayDeque源码分析

问题 (1)什么是双端队列? (2)ArrayDeque是怎么实现双端队列的? (3)ArrayDeque是线程安全的吗? (4)ArrayDeque是有界的吗? 简介 双端队列是一种特殊 ...

Tue Apr 30 07:17:00 CST 2019 0 485
java集合之HashMap源码分析

欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 简介 HashMap采用key/value存储结构,每个key对应唯一的value,查询和修改的速度都很快,能达到O(1)的平均时间复杂度。它是非线程安全的,且不保证元素存储的顺序; 继承体系 ...

Tue Apr 02 05:01:00 CST 2019 1 707
java集合之PriorityQueue源码分析

问题 (1)什么是优先级队列? (2)怎么实现一个优先级队列? (3)PriorityQueue是线程安全的吗? (4)PriorityQueue就有序的吗? 简介 优先级队列,是0个或多个元素的集合集合中的每个元素都有一个权重值,每次出队都弹出优先级最大或最小的元素。 一般来说 ...

Sun Apr 21 06:23:00 CST 2019 0 484
java集合之LinkedTransferQueue源码分析

问题 (1)LinkedTransferQueue是什么东东? (2)LinkedTransferQueue是怎么实现阻塞队列的? (3)LinkedTransferQueue是怎么控制并发安全 ...

Sun Apr 28 02:38:00 CST 2019 0 565
java集合之DelayQueue源码分析

问题 (1)DelayQueue是阻塞队列吗? (2)DelayQueue的实现方式? (3)DelayQueue主要用于什么场景? 简介 DelayQueue是java并发包下的延时阻塞队列,常用于实现定时任务。 继承体系 从继承体系可以看到,DelayQueue实现 ...

Mon Apr 29 07:33:00 CST 2019 0 1143
java集合之LinkedList源码分析

问题 (1)LinkedList只是一个List吗? (2)LinkedList还有其它什么特性吗? (3)LinkedList为啥经常拿出来跟ArrayList比较? (4)我为什么把Lin ...

Fri May 03 17:20:00 CST 2019 1 598
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM