
Java源码系列
Viscu
勤能补拙。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
JDK源码系列 AbstractQueuedSynchronizer源码剖析
AbstractQueuedSynchronizer源码分析 AbstractQueuedSynchronizer,简称AQS,我们着重关注AQS的两个函数: acquire release 1.acquire() 1.1 addWaiter函数 private AbstractQueuedSynchronizer.Node addWaiter(AbstractQueuedSynchroni...原创 2019-01-20 23:39:50 · 586 阅读 · 1 评论 -
JDK源码分析 FutureTask源码分析
文章目录前言一、Callable接口二、Future接口三、FutureTask源码分析3.1 Future继承结构图3.2 参数介绍3.3 构造函数3.4. FutureTask的API源码分析3.4.1. run():3.4.2 get()3.4.3. cancel 前言 一般我们创建线程的方式主要有两种,一种是直接继承Thread类,一种是实现Runnable接口。但是这两种方法是有缺陷的,...原创 2019-01-29 22:55:45 · 413 阅读 · 0 评论 -
JDK源码分析系列 AQS续篇Condition源码浅析
文章目录前言Condition以及其具体实现类源码分析一、Condition的继承关系类图二、Condition三、ConditionObject实现3.1 参数3.2 ConditionObject的核心API 前言 我们在Synchronized中了解到,如果我们调用await()方法的话,会将当前线程阻塞并且放置到等待队列中,唤醒的方法有notify(),notifyAll(),这些是jav...原创 2019-01-17 02:52:33 · 474 阅读 · 0 评论 -
JDK源码系列 Semaphore源码分析
文章目录前言Semaphore源码分析(基于JDK1.8)一、Semaphore整体结构二、内部类Sync2.1 NofairSync2.2 FairSync2.3 公平锁和非公平锁的差异三、Semaphore主要方法3.1 构造方法3.2 acquire3.3 tryAcquire3.4 release3.4 其余方法3.5 应用场景 前言 Semaphore(信号量),是用来控制同时访问特定资...原创 2019-01-27 16:27:42 · 401 阅读 · 0 评论 -
JDK源码系列 CyclicBarrier源码分析
文章目录前言CyclicBarrier源码分析(基于JDK1.8)CyclicBarrier整体结构一、参数二、构造函数三、CyclicBarrier的核心API3.1 await3.2. 其他API四、应用五、和CountDownLatch的区别 前言 CyclicBarrier的字面意思是可循环使用(Cycli)的屏障(Barrier)。它的作用就是,让一组线程到达一个屏障(同步点)时被阻塞,...原创 2019-01-26 23:53:59 · 340 阅读 · 0 评论 -
JDK源码系列 ThreadPoolExecutor源码分析
文章目录ThreadPoolExecutor源码分析1. ThreadPoolExecutor架构1.1 Executor1.2. ExecutorService1.3. ThreadPoolExecutor1.3.1. 构造方法1.3.2. 参数分析1.3.3. ThreadPoolExecutor核心API分析1.3.4. Worker内部类1.3.5. shutdown和shutdownNo...原创 2019-01-15 23:33:16 · 414 阅读 · 0 评论 -
JDK源码系列 ThreadLocalMap源码剖析
ThreadLocalMap源码实现 ThreadLocalMap是Thread内部存储ThreadLocal的数据结构,本质上就是一个Map,不过它又和我们熟悉的java.util.map并不太相同,我们来了解一下ThreadLocalMap的具体实现。 1.内部存储结构 ThreadLocalMap的内部存储结构是一个Entry数组,但是它和hashMap不太一样,它没有next指针,说明它...原创 2019-01-09 21:09:10 · 396 阅读 · 0 评论 -
JDK源码系列 ConcurrentHashMap源码分析
文章目录ConcurrentHashMap源码分析ConcurrentHashMap源码分析1. Segment类1.1 Segment参数分析:1.2 Segment构造器1.3 Segment的核心API2.ConcurrentHashMap相关API2.1 ConcurrentHashMap参数2.2. ConcurrentHashMap构造器 ConcurrentHashMap源码分析 之...原创 2019-01-14 01:42:52 · 314 阅读 · 0 评论 -
JDK源码系列 AQS续篇共享锁源码实现分析
文章目录CountDownLatch源码分析CountDownLatch整体结构Sync内部类CountDownLatch核心API1.1 await() CountDownLatch源码分析 之前分析了ReetrantLock源码,可重入锁是基于AQS的独占锁实现。现在我们来分析一下AQS的共享锁模式的实现,由于CountDownLatch便是AQS共享锁模式实现的,我们就从CountDownL...原创 2019-01-23 20:29:33 · 557 阅读 · 0 评论 -
JDK源码系列 ReentrantLock 公平锁和非公平锁的实现原理
ReetrantLock公平锁和非公平锁的实现 顾名思义,ReetrantLock就是可重入锁的意思,Java关键字Synchronized也是实现的可重入锁。 首先我们来看一下它们两之间的异同点。 ReetrantLock和Synchronized的异同点: 特性 Synchronized ReetrantLock 是否相同 可重入 是 是 √ 响应中断 否 是 × 超时...原创 2019-01-11 01:02:07 · 1278 阅读 · 1 评论 -
JDK源码系列 ArrayBlockingQueue源码浅析
文章目录前言ArrayBlockingQueue源码分析一、继承结构图二、ArrayBlockingQueue2.1. 参数介绍2.2. 构造函数2.3. 核心API实现 前言 在之前分析线程池ThreadExecutorPool的时候,我们就有接触到阻塞队列这一个概念。所谓阻塞队列,就是一个在传统队列基础上,支持两个附加操作的队列。而这两个附加的操作支持阻塞的插入和移除方法。 支持阻塞的插入方...原创 2019-01-31 00:39:58 · 492 阅读 · 0 评论