- 浏览: 7083 次
- 性别:
- 来自: 南京
最新评论
文章列表
网上很多大神写了关于AQS和读写锁的源码分析,看了收益良多。但是发现很少有基于读锁和写锁被持有的场景结合源码进行分析的,
所以尝试记录自己的分析结果,如果有人有暇发现了错误,请不吝赐教。
1: 读锁请求和释放
readLock.lock()
多个读请求锁,主要是调用ReentrantReadWriteLock的tryAcquireShared()方法
下面仔细分析下这个方法:
tryAcquireShared()方法:
①:判断是当前否存在独占锁,如果存在独占锁,那么返回-1,进入doAcquireShared方法()
②:判断readshouldBloc ...
直接贴上例子
public class InteruptTest extends Thread {
static int i = 0;
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
// i happy run , please break me
System.out.println("I'm runing " + i++);
try {
Thread.sleep(500 ...