} else { //有竞争的后续看
}
}无竞争,直接获取锁
先看下首先获取锁并释放锁背后的redis都在做什么,可以利用redis的monitor来在后台监控redis的执行情况。当我们在方法了增加@RequestLockable之后,其实就是调用lock以及unlock,下面是redis命令:
加锁
由于高版本的redis支持lua脚本,所以redisson也对其进行了支持,采用了脚本模式,不熟悉lua脚本的可以去查找下。执行lua命令的逻辑回获取锁失败
this.await返回true,进入循环尝试获取锁。
this.getEntry(threadId).getLatch().tryAcquire(time, TimeUnit.MILLISECONDS);
}http://www.cnblogs.com/ASPNET2008/p/6385249.html
time -= System.currentTimeMillis() - currentTime;
} while(time > 0L);
&n
