- 博客(3)
- 资源 (1)
- 收藏
- 关注
原创 SparkStreaming源码阅读
在了解SparkStreaming之前,先来弄清几个变量: //生成SparkJob,使用JobGenerator来生成Spark Job,然后在一个线程池运行这些Job private[streaming] val scheduler = new JobScheduler(this) // private[streaming] val waiter = new Contex...
2019-01-16 20:05:53 227
原创 ReentrantLock源码
目录 公平锁的实现: 非公平锁的实现: 在看公平锁的实现之前,我们先来看ReentrantLock中一个静态内部类Sync,Sync是一个抽象的静态内部类,集成了AbstractQueuedSynchronizer抽象类.源码如下: Sync是ReentrantLock实现同步控制的基础,非公平锁和公平锁都是其子类,使用AQS的state变量来代表锁被持有的次数 /** ...
2019-01-16 16:30:17 429 2
原创 同步队列
一 AQS同步队列实现分析 AQS是一个 1 同步队列 AQS是通过一个内部的FIFO的同步队列来管理同步状态,当线程获取锁失败的时候,当前想线程以及当前线程的状态等信息,会被构造成一个节点加入到同步队列的尾部,然后阻塞当前线程。那么这个节点保存哪些信息呢? 当前线程的引用、等待状态以及当前节点的前驱节点和后继节点。 同步器中存在两种引用:指向首节点的引用和指向尾节点的引用. ...
2019-01-12 15:34:03 1345
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人