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