AQS
2021-09-22 17:33:20 3 举报
java.util.concurrent包下的AQS类
作者其他创作
大纲/内容
addWaiter方法入队(此处之后为AQS通用方法)
否
入队成功,进入节点是否挂起判断
reentrantLock
getExclusiveOwnerThread,该锁是否为当前线程
加锁线程为当前线程setExclusiveOwnerThread(Thread.currentThread())
开始
当前资源是否有锁getState
成功
可以重入,state=state+1
是
队列尾是否为空
state=0,无锁
失败
AQS的acquire方法
入队失败
自旋入队,比快速入队多了空队列判断
加锁是否成功
有锁
尾插法compareAndSetTail快速入队
reentrantLock的tryAcquire
没有
判断当前线程前面有没有排队的节点
0 条评论
回复 删除
下一页