阅读时间:2分钟
Redisson的机制实现了分布式锁如下:依赖版本
以下是模拟商品尖峰的场景。示例代码如下:
它是锁的核心代码。让我们看一下调用堆栈锁的核心方法:
实际上,它的本质是将LUA脚本称为锁。
锁的续订在方法中实现。
应该注意的是,门设置在主线程延迟队列的线程中。
代码显示如下:
锁定周期代码如下:
然后调用续订逻辑
方法,其中有一个LUA脚本来重新设置锁的到期时间。
当获得锁定故障时,它将输入评论。实际上,将在此处执行18行之后的逻辑
实际上,这是一个间歇性的旋转。等待直到上次到期的时间,醒来锁定
另一个逻辑是
完整的futurefuture = subscribe(threadID);
这实际上是将订阅的消息。
rlock.unlock();核心是释放锁,撤销续订和等待锁定的唤醒线程(发布成功的新闻)。
核心方法(解锁):
它仍然是Lua的执行。
核心方法
返回以唤醒阻塞线程,并让锁定逻辑在执行的前面。特定代码如下: