AQS相关逻辑解析
關(guān)心QPS TPS
如何讓線程停留在lock
1、競爭鎖-(拿到鎖的線程、沒拿到鎖的線程)
臨界區(qū)的資源(static redis 數(shù)據(jù)庫變量 配置中心config zookeeper)大家共享都可以獲得的資源
臨界區(qū)沒拿到鎖的未拿到鎖線程進(jìn)行停留
2、怎么讓線程停留在Lock方法里
while(true
3、怎么保證只有一個(gè)線程拿到鎖
cas從node鏈表里拿出值,鏈表類似隊(duì)列,拿的過程還分 可以公平按照隊(duì)列順序拿,還是非公平的隨機(jī)按權(quán)限拿
4、怎么能停住
(sleep yeild await都不行)
? ?LockSupport.park,LockSupport.unpark
總結(jié)
- 上一篇: CountDownLatch的理解和使用
- 下一篇: synchronized 和Lock区别