源码
经年JN
这个作者很懒,什么都没留下…
展开
-
源码系列 - 一行一行分析AbstractQueuedSynchronizer
在分析 Java 并发包 java.util.concurrent 源码的时候,少不了需要了解 AbstractQueuedSynchronizer(以下简写AQS)这个抽象类,因为它是 Java 并发包的基础工具类,是实现 ReentrantLock、CountDownLatch、Semaphore、FutureTask 等类的基础。 Google 一下 AbstractQueuedSynchronizer,我们可以找到很多关于 AQS 的介绍,但是很多都没有介绍清楚,因为大部分文章没有把其中的一些关键的转载 2020-08-30 21:27:34 · 187 阅读 · 0 评论 -
源码系列 - 一行一行分析 ThreadPoolExecutor 源码
源码系列 - 一行一行分析 ThreadPoolExecutor 源码 1 成员属性 // ctl = RUNNING // RUNNING | 0 = 1010 0000 0000 0000 0000 0000 0000 0000 | 0000 0000 0000 0000 0000 0000 0000 0000 = 1010 0000 0000 0000 0000 0000 0000 0000 = RUNNING // 简单说下ctl,作者把ctl分为两部分 // 第一部分为高3位,表示线程池状态; /原创 2020-08-19 17:31:12 · 125 阅读 · 0 评论 -
源码系列 - 一行一行分析 HashMap 源码
1 数据结构 开始之前,先简单介绍下 HashMap 数据结构,如下图(jdk1.8) 如上图, HashMap 数据结构是一个Hash表,当表中一个节点元素个数小于8时是一个单向链表,大于等于8时,调整为红黑树(jdk1.8做的改进) 2 设计思想 数组+链表+红黑树 容量为2的n次方,提升数组索引位置的计算效率 采用高低链的方式来解决重复计算hash的问题,提升扩容效率 链表长度大于等...原创 2019-08-22 13:37:37 · 213 阅读 · 0 评论