ReentrantLock重入锁流程
2019-12-30 10:02:00 0 举报
ReentrantLock重入锁流程
作者其他创作
大纲/内容
lock(1)
false
true
hasQueuedPredecessors有同步队列并且当前线程不是队首
公平锁tryAcquire
state==0
锁重入
非公平锁ReentrantLock(false)
当前线程就是持锁线程
ReentrantLock重入锁流程 by:蒋森
FairSync.acqqui(1)
非公平锁nonfairTryAcquire
非公平锁不管有没有同步队列,直接CAS尝试获取锁,这是和公平锁区别最大的地方
加入同步队列等待被唤醒
公平锁ReentrantLock(true)
NonfairSync.acqqui(1)
compareAndSetState
state +=1
释放时state -= 1到0为止
获取到锁
0 条评论
回复 删除
下一页