![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java并发
奈何桥上摆地摊oO
我是一个热爱减肥却控制不住嘴的胖子
展开
-
AQS如何用一个Int值来表示读写两种状态
上一篇博客更新了AQS的一个源码解析,从中我们可以了解到,AQS仅仅依靠一个int值就可以实现线程阻塞排队以及执行的机制。 依赖AQS实现的锁有很多种,ReentrantLock就是其中的一个。下篇博客就是将分析另一种锁ReentrantReadWriteLock。这种锁涉及到写锁与读锁。而AQS仅仅单靠一个int值就区分了读锁。为了理解源码简单,我在这里先将这部分知识点讲解一下。 /* ...原创 2019-10-14 21:13:45 · 547 阅读 · 1 评论 -
AbstractQueuedSynchronizer(AQS)分析
上两天一直在更新ReentrantLock得源码阅读。今天就更新一下在java.util.concurrent中最重要得基础类AbstractQueuedSynchronizer简称AQS类。 通过读源码得注释可以了解到,这个类是为实现依赖于先进先出(FIFO)等待队列实现阻塞锁以及同步器(信号灯,事件等)提供了一个框架。换而言之,这个类单独拿出来并没有什么实际意义,只是提供了一个框架,。这个类...原创 2019-10-14 08:56:23 · 168 阅读 · 0 评论 -
Java并发 ReentrantLock(重入锁)之公平锁源码解析 超详细!!!
上一篇讲的是ReentrantLock的非公平锁,这篇博客就讲讲RenntrantLock的公平锁。 公平锁,就是线程老老实实的排队,不会尝试争抢资源。 还是举上厕所的栗子(通俗易懂,牛的一批):你在公共厕所排队上厕所,突然又有一个人进来,这回这个人讲究的很,没有去挨个开厕所门,而是直接排在你后面,等轮到他了他再上厕所。 其实公平锁与非公平锁的操作大部分都差不多,只是在尝试获取锁资源的地方不...原创 2019-10-12 15:52:53 · 519 阅读 · 0 评论 -
Java并发 ReentrantLock(重入锁)之非公平锁源码解析 超详细!!
非公平锁,顾名思义就是不公平的获取锁,只要有机会,就尝试抢占锁资源。 举个栗子,你在公共厕所排队上厕所,突然有一个人进来,尝试开了所有厕所的门,只要有没人的坑位,他就抢先蹲进去,如果没有坑位,则老老实实的排队。 我这里简单写了一个例子方便进行代码阅读 import java.util.concurrent.locks.ReentrantLock; /** * ...原创 2019-10-11 22:29:27 · 333 阅读 · 0 评论