标签:rac unlock 同步队列 可重入 sync 同步 null down abs
ReentrantLock:new ReentrantLock()/lock()/unlock()
ReentranReadWriteLock
可重入锁:对同一个对象可以多次加锁
1.抽象同步队列三个核心组件:加锁状态(state)+加锁线程+等待队列
2.初始的时候
state = 0
加锁线程=null
3.加锁的过程
Thread1通过CAS对state进行加锁,先看state是否
等于0==>state++,加锁线程=Thread1
不等于0==>再看看是不是自己加的锁,不是自己加的锁,放入等待队列中;是自己加的锁,state++(这个时候就实现了可重入锁)
AQS是JUC的一个基础组件,用来实现各种锁(ReentrantLock,ReentrantReadWriteLock),同步工具(Semaphone,CountDownLatch,CyclicBarrier).
他底层有三个核心组件:state,加锁线程,等待队列
标签:rac unlock 同步队列 可重入 sync 同步 null down abs
原文地址:https://www.cnblogs.com/yejiang/p/12618440.html