0
点赞
收藏
分享

微信扫一扫

Java-Redisson分布式锁+自定义注解+AOP的方式来实现后台防止重复请求

快乐码农Alan007 2024-11-18 阅读 7

在这里插入图片描述

初始状态:

表示系统或资源在没有线程持有锁的情况下的状态,任何线程都可以尝试获取锁。

线程 1 获得锁:

线程 1 首次获取了锁并进入受保护的代码区域。

线程 1 再次请求锁:

在持有锁的情况下,线程 1 再次请求锁,展示了可重入锁的特性——线程可以在持有锁的情况下重新进入锁区域而不会阻塞。

线程 1 释放锁:

线程 1 完成任务,开始释放锁。在可重入锁的情况下,需要释放与请求次数相同的次数,线程 1 完全释放锁后,锁恢复到初始状态。

线程 2 等待锁:

当线程 1 持有锁时,线程 2 试图获取锁但被阻塞,进入等待状态。这个节点表示线程 2 被阻塞等待的状态。

线程 2 获得锁:

线程 1 完全释放锁后,锁恢复为初始状态,线程 2 能够获取锁,进入受保护的代码区域。

线程 2 释放锁并返回初始状态:

线程 2 完成任务后,释放锁,系统回到初始状态,其他线程可以尝试获取锁。

举报

相关推荐

0 条评论