AQS是JUC的重中之重
整体就是一个FIFO的链式队列
AQS的stat表示当前资源的状态
AQS的内部维护了一个内部类Node
waitstatus的状态表示
AQS源码分析
细说aqs
非公平锁先尝试CAS抢一下资源,如果抢到了就占用,如果没抢到,就进入队列
tryacquire
尝试获取一下锁,公平锁和非公平锁的区别是,公平锁会检测一下有没有队列,非公平不会
addwaiter
进入到等待队列里面
整体就是一个FIFO的链式队列
AQS的stat表示当前资源的状态
AQS的内部维护了一个内部类Node
waitstatus的状态表示
细说aqs
非公平锁先尝试CAS抢一下资源,如果抢到了就占用,如果没抢到,就进入队列
尝试获取一下锁,公平锁和非公平锁的区别是,公平锁会检测一下有没有队列,非公平不会
进入到等待队列里面