Toggle navigation
陈树义的博客
首页
分类
标签
关于
架构师指南
陈树义的博客
分享我的所思所想
并发集合源码系列(八):ConcurrentLinkedDeque
在开始讲ConcurrentLinkedDeque之前,我们先来了解下Deque这种数据结构,我们知道Queue是一种具有FIFO特点的数据结构,元素只能在队首进行“入队”操作,在队尾进行“出队”操作。Queue接口定义Queue的接口非常简单,一共只有三种类型的操作:入队、出队、读取。上述方法,可
Posted by 陈树义 on 2021-06-17
并发集合源码系列(七):ConcurrentLinkedQueue
ConcurrentLinkedQueue是JDK1.5时随着J.U.C一起引入的一个支持并发环境的队列。从名字就可以看出来,ConcurrentLinkedQueue底层是基于链表实现的。Doug Lea在实现ConcurrentLinkedQueue时,并没有利用锁或底层同步原语,而是完全基于自
Posted by 陈树义 on 2021-06-17
并发集合源码系列(六):CopyOnWriteArraySet
CopyOnWriteArraySet,是另一类适合并发环境的SET工具类,也是在JDK1.5时,随着J.U.C包一起引入的。我们之前已经介绍过了ConcurrentSkipListSet,ConcurrentSkipListSet底层基于Skip List(跳表)实现,其操作平均时间复杂度均为O(
Posted by 陈树义 on 2021-06-17
并发集合源码系列(五):CopyOnWriteArrayList
ArrayList是一种“列表”数据机构,其底层是通过数组来实现元素的随机访问。JDK1.5之前,如果想要在并发环境下使用“列表”,一般有以下3种方式:使用Vector类使用Collections.synchronizedList返回一个同步代理类;自己实现ArrayList的子类,并进行同步/加锁
Posted by 陈树义 on 2021-06-17
并发集合源码系列(四):ConcurrentSkipListSet
ConcurrentSkipListSet,是JDK1.6时J.U.C新增的一个集合工具类,顾名思义,它是一种SET类型。SET类型,在数学上称为“集合”,具有互异性、无序性的特点,也就是说SET中的任意两个元素均不相同(即不包含重复元素),且元素是无序的。是不是感觉和HashMap有点类似?Has
Posted by 陈树义 on 2021-06-17
并发集合源码系列(二):ConcurrentHashMap 扩容
通过上一篇文章——ConcurrentHashMap原理(1),相信读者对ConcurrentHashMap的基本原理有了一个初步认识,但是上一篇中还有一个遗留问题没有讨论到,那就是ConcurrentHashMap的扩容和数据迁移。本文中,我们将会对这两个问题进行讨论。扩容思路JDK1.8中,Co
Posted by 陈树义 on 2021-06-17
并发集合源码系列(一):ConcurrentHashMap基础
ConcurrentHashMap是在JDK1.5时,J.U.C引入的一个同步集合工具类,顾名思义,这是一个线程安全的HashMap。不同版本的ConcurrentHashMap,内部实现机制千差万别,本节所有的讨论基于JDK1.8。ConcurrentHashMap的类继承关系并不复杂:可以看到C
Posted by 陈树义 on 2021-06-17
并发包源码系列(十三):总结
总的来说,并发源码可以总结成下面这张思维导图:关于并发源码解析,可以参考两个系列的文章:Ressmix的并发系列明哥并发系列
Posted by 陈树义 on 2021-06-17
并发包源码系列(十二):并发工具类 Exchanger
前面三篇博客分别介绍了CyclicBarrier、CountDownLatch、Semaphore,现在介绍并发工具类中的最后一个Exchange。Exchange是最简单的也是最复杂的,简单在于API非常简单,就一个构造方法和两个exchange()方法,最复杂在于它的实现是最复杂的(反正我是看晕
Posted by 陈树义 on 2021-06-17
并发包源码系列(十一):并发工具类 Semaphore
信号量Semaphore是一个控制访问多个共享资源的计数器,和CountDownLatch一样,其本质上是一个“共享锁”。 Semaphore,在API是这么介绍的: 一个计数信号量。从概念上讲,信号量维护了一个许可集。如有必要,在许可可用前会阻塞每一个 acquire(),然后再获取该许可。每个
Posted by 陈树义 on 2021-06-17
← Newer Posts
Older Posts →
FRIENDS
田小波的博客
分类
知识科普
技术管理
生活记录
读书分享
效率工具
技术知识
认知成长
技术实践
标签
性能优化
单测
事务
Spring
性能调优
Tomcat
MySQL
系统设计
稳定性建设
synchronized
并发编程
Java内存模型
思维误区
认知成长
简历
爬虫
Github
邮件
经济学
书籍推荐
年度总结
个税
排序
算法
程序员
架构师
软件工程
操作系统
阻塞队列源码系列
推送基础系列
JVM 规范系列
Prometheus 入门系列
集合源码系列
JVM 基础系列
并发集合源码系列
并发包源码系列
线程池源码系列
JVM实战
Apache Common Pool
树结构
数据结构
中年危机
教员
Redis
HBase
有赞
Chrome
技术管理
美团
建站
Kafka
法律
Prometheus
商业
哲学
时间管理
Markdown
面试
华为
Maven
区块链
源码
雷军
小米
线上问题
管理
方法论
数据库
Push
JVM
Alfred
架构设计
计算机原理
MongoDb
职业规划
运维
重构
设计模式
LOG4J
ImageMagick
计算机网络
入门教程
毛主席
Java
Canal
ElasticSearch
Linux
Shell
关于我
知