![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jdk源码分析
小作坊中搬砖
悠然见南山……
展开
-
基于java8分析CountDownLatch源码
ReentrantLock和ReentrantReadWriteLock都实现interface接口,内部又继承AbstractQueuedSynchronizer。而CountDownLatch是JUC中提供的一个多线程间协同的工具类,并没有实现interface接口,只在内部继承实现AQS。CountDownLatch主要处理:主线程将某个大任务切分成数个小任务,由多个线程处理小任务,而主线程阻塞直到所有任务完成后,主线程再处理接下来的任务。即:处理一个线程与多个线程间的协同问题。CountDo原创 2020-07-06 02:40:38 · 194 阅读 · 0 评论 -
基于jdk8分析分析ReentrantReadWriteLock源码
ReentrantReadWriteLock可重入读写锁,同样是基于AQS实现的。与ReentrantLock区别就是读写分离,将锁的粒度都将细化,提升性能。在共享数据读写操作中,读操作远远超过写操作的次数,那么可以理解为共享数据在大部分时间是不变的。synchronized和ReentrantLock作为互斥锁,用于这种场景明显会降低系统的性能。因此,读写分离的重入锁ReentrantReadWriteLock就出现了。ReentrantLock特点是:读-读并行、读-写互斥、写-写互斥。存在对共享数原创 2020-07-04 17:11:14 · 193 阅读 · 0 评论 -
基于jdk8分析ReentranLock源码
通过下述代码,来深挖ReentranLock的底层实现。下述代码使用了ReentrantLock锁的lock、unlock、condition等常用方法。让我们一一解析底层实现。public class TestReentrantLock { private static final int MAX_CACHE_SIZE = 16; private Map<String, String> cache = new HashMap<>(); privat.原创 2020-07-03 01:15:44 · 239 阅读 · 0 评论