首先在聊ReentrantLock之前,我们需要知道整个JUC的并发同步的基石,currrent里面所有的共享变量都是由volatile修饰的,我们知道volatile的语义有2大特点,可见性以及防止重排序2、当第一个操作为volatile读操作时,不管第二个操作是什么,都不能进行重排序。这个规则确保volatile读之后的所有操作都不会被重排序到volatile之前;3、当第一个操作是volatile写操作时,第二个操作是volatile读操作,不能进行重排序。= 0,说明是-1,说明设置闹钟了,需要唤醒aqs队列中的阻塞结点,调用的是unparkSuccessor方法,继续看源码这里首先明确,这里传进来的node是啥?是头节点!!!!

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码

彻底了解java中ReentrantLock和AQS的源码