lock
2022-02-06 10:58:28 3 举报
ReentrantLock
作者其他创作
大纲/内容
nonfairTryAcquire
compareAndSetState尝试获取锁
release方法state减1,直到为0
结束
AbstractQueuedSynchronizer里面的lock方法
调用acquireQueuedH获取锁或者阻塞线程
hasQueuedPredecessors方法判断当前线程是不是CLH队列被唤醒的线程
将当前线程设置成独占访问权限
默认否
sync.release(1);
调用unparkSuccessor将头节点的下个节点唤醒
false
是否公平锁
创建节点使用cas的方式将Node加入到CLH队列尾addWaiter
unlock方法
是
true
非公平锁
尝试获取锁
lock方法
0 条评论
下一页