- 博客(3)
- 收藏
- 关注
原创 ReentrantReadWriteLock源码(jdk1.8)
ReentrantReadWriteLock是一个可重入读写分离锁,可以认为是在ReentrantLock上的扩展,但是二者没有继承关系,相比于ReentrantLock将读和写分离,读读不互斥,可以提高并发环境下的效率,同样也是基于AQS实现,源码比ReentrantLock要复杂一些,最好能了解AQS源码。 ReentrantReadWriteLock内部有Sync,NoNofairSync,...
2019-04-07 20:41:09 1020
原创 ReentrantLock源码(jdk1.8)
ReentrantLock比较常用的一个锁,基于AQS实现,支持可重入性,公平锁和非公平锁两种模式。 ReentrantLock的可重入性是通过对同步状态值state进行累加实现;ReentrantLock有三个内部类,分别是Sync,NonfairSync,FairSync他们的继承关系如下图所示,ReentrantLock持有一个Sync类型的引用,根据多态的思想,在公平锁和非公平锁模式下,分...
2019-04-06 20:36:14 307
原创 AQS源码(jdk1.8)
AQS(AbustactQueuedSynchronizer)队列同步器是Java同步的基础组件,ReentrantLock,ReentrantReadWriteLock,CountDownLatch,CyclicBarrier,Semaphore等都是基于AQS来实现的,了解AQS的源码对于多线程编程还是有一些帮助,也可以实现自定义的同步组件。 AQS使用了模板方法设计模式,提供了独占锁/共享锁...
2019-04-04 19:12:21 706
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人