立即学习:https://edu.csdn.net/course/play/26270/326877?utm_source=blogtoedu
ReentrantLock简单的加锁解锁过程:
1.无竞争时(AQS中state=0,exclusiveOwner Thread=null),加锁(将state置为1,exclusiveOwner Thread=currentThread)和解锁只是利用CAS去更新state的值;
2.当AQS中有线程占有锁时,若当前线程是已占有锁的线程,可以进行多次lock,即state+=1,但需要对应state次数的unlock才能完全释放锁。这就是ReentrantLock的可重入实现。