StampedLock實現原理

  StampedLock的實現 基於CLH鎖->一種自旋鎖,保證沒有飢餓發生,FIFO順序【先進先出】 維護一個線程隊列,申請不成功的記錄在此,每個節點保存一個標記位【locked】,用來判斷當前線程是否釋放鎖 當線程試圖獲取鎖,取得當前隊列的尾部節點作爲其前序節點,並使用類似while(pred.locked){}判斷前序節點是否已經成功釋放鎖 只要前序節點沒有釋放鎖,則表示當前線程還不能繼續
相關文章
相關標籤/搜索