学习笔记(07):Java并发编程精讲-ReentrantLock的加锁解锁过程(一)

立即学习: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的可重入实现。

你可能感兴趣的:(研发管理)