前言
接着前面的分析
curator获取锁分析
现在看下Curator分布式锁的解锁。
interProcessMutex.release();
public void release() throws Exception
{
//从锁信息map中获取当前线程的锁信息
Thread currentThread = Thread.currentThread();
LockData lockData = threadData.get(currentThread);
if ( lockData == null )
{
throw new IllegalMonitorStateException("You do not own the lock: " + basePath);
}
//锁次数减一
int newLockCount = lockData.lockCount.decrementAndGet();
//锁次数不为0的话,说明该线程还有锁。直接返回
if ( newLockCount > 0 )
{
return;
}
if ( newLockCount < 0 )