释放锁的逻辑-LockInternals.releaseLock
生活随笔
收集整理的這篇文章主要介紹了
释放锁的逻辑-LockInternals.releaseLock
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
void releaseLock(String lockPath) throws Exception{ revocable.set(null); // 刪除臨時順序節點,只會觸發后一順序節點去獲取鎖,理論上不存在競爭,只排隊,非搶占,公平鎖,先到先得 deleteOurPath(lockPath);
}
// Class:LockInternals
private void deleteOurPath(String ourPath) throws Exception{ try{ // 后臺不斷嘗試刪除 client.delete().guaranteed().forPath(ourPath); } catch ( KeeperException.NoNodeException e ) { // 已經刪除(可能會話過期導致),不做處理 // 實際使用Curator-2.12.0時,并不會拋出該異常 }
}
?
總結
以上是生活随笔為你收集整理的释放锁的逻辑-LockInternals.releaseLock的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 释放锁的逻辑-InterProcessM
- 下一篇: 使用Zookeeper实现leader选