- 博客(3)
- 收藏
- 关注
原创 JDK锁的基础--AQS实现原理(三)
本文主要来分析一下AQS共享模式锁的获取和释放,AQS其实只是一个框架,它主要提供了一个int类型的state字段,子类继承时用于存储子类的状态,并且提供了一个等待队列以及维护等待队列的方法。至于如何使用这个状态值和等待队列,就需要子类根据自己的需求来实现了。以Semaphore类为例,Semaphore允许多个线程同时获得信号量先来看一下Semaphore的接口: //Semaphore
2018-04-11 13:27:37 1227 1
原创 JDK锁的基础--AQS实现原理(二)
上文介绍了AQS的一些基础知识,包括CLH锁的原理和AQS的一些数据结构,这篇文章中我们来分析一下AQS的方法。AQS是一个抽象类,定义了几个模板方法交给子类去实现,分别是:protected boolean tryAcquire(int arg) protected boolean tryRelease(int arg)protected int tryAcquireShared(int a
2018-04-09 21:39:04 935
原创 JDK锁的基础--AQS实现原理(一)
AQS全称是AbstractQueuedSynchronizer,是jdk中用来实现锁的基础框架,比如ReentrantLock、ReadWriteLock以及Condition的实现和AQS密切相关。说到AQS,等来介绍一下CLH锁,CLH锁是用来实现自旋锁的一种方式,其大概原理是用一个队列把等待锁的线程保存起来,自旋等待。但是CLH比较特别的地方在于,在某种程度上,每个节点的行为是由其前驱节点的
2018-04-09 16:08:20 1950 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人