
JUC源码分析
IMHB
造轮子真好玩,即使目前还是低级别的轮子
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
从ReentrantLock开始入手AQS源码
ReentrantLock是依赖于AQS的一个锁的实现,它是一把独占锁,并且是一把可重入锁。本人看源码的功底比较差,还是只能从经常用到的东西入手。那么就开始咯。1.构造器//非公平锁public ReentrantLock() { sync = new NonfairSync();}//可以指定公平锁与否(其实两种锁的很多地方应该是相似的,因此我们先考虑非公平锁)...原创 2018-07-16 23:03:52 · 217 阅读 · 0 评论 -
从ReentrantReadWriteLock开始入手AQS源码
ReentrantReadWriteLock是一把读写锁,其基本实现依赖于两把锁,读锁和写锁,读锁之间能够进入,写锁之间互斥,这样对于锁的操作更加细粒度。首先要学习任何东西,都得了解他是用来干嘛的,其次知道他的流程,接下来就是真正的深入研究。下面放出一个我觉得不错的流程讲解:轻松掌握java读写锁(ReentrantReadWriteLock)的实现原理1.构造器public Reent...原创 2018-07-19 16:32:28 · 266 阅读 · 1 评论 -
CountDownLatch源码分析
首先,我就不介绍CountDownLatch了,如果不知道的同学,可以参考一下:https://www.cnblogs.com/bqcoder/p/6089101.html//这就是平时的使用方式了/** * (1)看一下构造方法 * (2)看一下await()方法 * (3)看一下countDown()方法 */CountDownLatch cdl=new CountDownL...原创 2018-09-08 20:32:01 · 118 阅读 · 0 评论 -
线程池源码分析(1)execute()方法
接下来,我将讲解线程池的源码分析。作为新手入门的手册的话,我就选取曾经自己看的文章,写的相当不错。https://www.jianshu.com/p/210eab3454231.从最简单的单线程-线程池入手。//一点点的进行分析。首先,放出第一种用法。ExecutorService executor=Executors.newSingleThreadExecutor();//只需要实...原创 2018-09-15 17:15:04 · 436 阅读 · 0 评论 -
CyclicBarrier源码分析
接下来就分析一下CyclicBarrier,如果有不了解CyclicBarrier的使用的话,给大家推荐一篇生动形象的入门博客:https://blog.youkuaiyun.com/carson0408/article/details/794714901.构造方法。public CyclicBarrier(int parties, Runnable barrierAction) { i...原创 2018-09-09 23:10:02 · 132 阅读 · 0 评论 -
Semaphore源码分析
还是像之前,关于Semaphore的使用方法,我就不介绍了,依然提供一个博客地址供大家了解。https://blog.youkuaiyun.com/zzy7075/article/details/52095773平常的使用的话:`//permits是指允许进入的线程数量Semaphore semaphore=new Semaphore(permits);semaphore.acquire()...原创 2018-09-12 09:00:20 · 181 阅读 · 0 评论 -
线程池源码分析(2)submit
线程池的话,其实就那么几种,前面已经分析过了。大体的流程已经清楚了。至于其他几种线程池的区别(其实区别就在于队列的放入,放出的处理不同)的话,就可以放在后面来慢慢看看区别。接下来,今天要看的是能够得到返回值的线程任务—Callable。//先看一下平常的使用方式。Callable job = new YourJob();Future<Object> future = exe...原创 2018-09-17 08:53:43 · 296 阅读 · 0 评论 -
Condition源码解析—依赖ReentrantLock
condition的几个api和object的几个方法非常相似,但是对于锁的控制力度更加强大了,比如控制粒度更细了,提供了更多的功能:在一定时间内等待..等等。那么就先来看一下平时的使用吧。ReentrantLock lock = new ReentrantLock();Condition condition= lock.newCondition();//构造方法,基本属于什么都没...原创 2018-09-10 09:21:17 · 290 阅读 · 0 评论 -
java-延时队列-DelayQueue源码分析
首先延时队列的发现是基于一个实际场景:如何处理超时的订单这个问题很容易想到解决方案(1)写一个定时任务,轮询超时的订单(缺点:性能消耗过大,对数据库造成压力)(2)放入延时队列当中那么我就选择一下延时队列,看一下java的实现吧。贴出一个入门的博客:https://www.cnblogs.com/barrywxx/p/8525907.html然后我们就以这个博客来入手源码...原创 2018-12-21 17:09:49 · 383 阅读 · 0 评论