最近一直在研究AQS的源码,希望可以更深刻的理解AQS的实现原理.虽然网上有很多关于AQS的源码分析,但是看完以后感觉还是一知半解.于是,我将自己的整个理解过程记录下来了,希望对大家有所帮助. 基本原理 AQS是Java中锁的基础,主要由两个队列组成.一个队列是同步队列,另一个是条件队列. 同步队列的原理 同步队列的队列头部是head,队列尾部是tail节点,head节点是一个空节点,同步队列是一个双向链表,通过next和prev连接所有节点 所有的线程在竞争锁的时候都会创建一个Node节点,线…