首页
AI Coding
AIDP
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
WriteOnRead
掘友等级
公众号
|
WriteOnRead
诗酒趁年华
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
87
文章 64
沸点 23
赞
87
返回
|
搜索文章
最新
热门
JDK源码分析-LinkedBlockingQueue
前文「JDK源码分析-ArrayBlockingQueue」分析了 ArrayBlockingQueue 的代码实现,LinkedBlockingQueue 也是阻塞队列的实现。与前者不同的是,后者内部是由链表实现的。 下面分析其主要方法的代码实现。 PS: 从 Node 定义…
JDK源码分析-ArrayBlockingQueue
前文「JDK源码分析-BlockingQueue」简要分析了 BlockingQueue 接口的主要方法,ArrayBlockingQueue 就是该接口的一个主要实现类,本文分析该类的常用方法实现。 从 ArrayBlockingQueue 的名字大概可以猜出来,它的内部是由…
JDK源码分析-Semaphore
Semaphore 是并发包中的一个工具类,可理解为信号量。通常可以作为限流器使用,即限制访问某个资源的线程个数,比如用于限制连接池的连接数。 打个通俗的比方,可以把 Semaphore 理解为一辆公交车:车上的座位数(初始的“许可” permits 数量)是固定的,行驶期间如…
JDK源码分析-CyclicBarrier
CyclicBarrier 是并发包中的一个工具类,它的典型应用场景为:几个线程执行完任务后,执行另一个线程(回调函数,可选),然后继续下一轮,如此往复。 打个通俗的比方,可以把 CyclicBarrier 的执行流程比作:几个人(类比线程)围着操场跑圈,所有人都到达终点后(终…
JDK源码分析-LinkedHashMap
前文「JDK源码分析-HashMap(1)」分析了 HashMap 主要方法的实现原理(其他问题以后分析),本文分析下 LinkedHashMap。 可以看到 LinkedHashMap 继承了 HashMap。 我们知道 HashMap 是无序的,即迭代器的顺序与插入顺序没什…
JDK源码分析-Hashtable
与 HashMap 类似,Hashtable 也是散列表的实现。它的内部结构可以理解为「数组 + 链表」的形式,结构示意图如下: Hashtable 的 key 和 value 都不能为空(HashMap 的 key 和 value 都允许为空),并且 key 必须要实现 ha…
JDK源码分析-CountDownLatch
CountDownLatch 是并发包中的一个工具类,它的典型应用场景为:一个线程等待几个线程执行,待这几个线程结束后,该线程再继续执行。 简单起见,可以把它理解为一个倒数的计数器:初始值为线程数,每个线程结束时执行减 1 操作,当计数器减到 0 时等待的线程再继续执行。 常用…
JDK源码分析-ReentrantLock
在 JDK 1.5 以前,锁的实现只能用 synchronized 关键字;1.5 开始提供了 ReentrantLock,它是 API 层面的锁。先看下 ReentrantLock 的类签名以及如何使用: public void m() { lock.lock(); // b…
JDK源码分析-AbstractQueuedSynchronizer(3)
前文「JDK源码分析-AbstractQueuedSynchronizer(2)」分析了 AQS 在独占模式下获取资源的流程,本文分析共享模式下的相关操作。 其实二者的操作大部分是类似的,理解了前面对独占模式的分析,再分析共享模式就相对容易了。 1. acquireShared…
JDK源码分析-AbstractQueuedSynchronizer(2)
前文「JDK源码分析-AbstractQueuedSynchronizer(1)」初步分析了 AQS,其中提到了 Node 节点的「独占模式」和「共享模式」,其实 AQS 也主要是围绕对这两种模式的操作进行的。 共享模式(shared):与独占模式不同,多个线程可以同时访问资源…
下一页
个人成就
文章被点赞
134
文章被阅读
30,114
掘力值
1,264
关注了
6
关注者
70
收藏集
0
关注标签
6
加入于
2018-11-11