当前位置: 首页 > web >正文

SpringCloud 分布式锁Redisson锁的重入性 高并发 获取锁

介绍

Redisson 的锁支持 可重入性,这意味着同一个线程在获取锁后,如果再次尝试获取该锁,它可以成功地获得锁,而不会被阻塞。

  • 每次一个线程成功获取锁后,它的持有次数会增加。当线程再次获取该锁时,Redisson 会检查该线程是否已经持有锁。如果是,它会允许该线程再次获取锁,并将持有次数递增。
  • 每次释放锁时,持有次数会递减,直到持有次数变为零,锁才会被完全释放。

在这里插入图片描述

  public static void main(String[] args) {// 创建 Redisson 客户端配置Config config = new Config();config.useSingleServer().setAddress("redis://localhost:6379"); // 连接到本地 Redis 服务器RedissonClient redisson = Redisson.create(config);// 获取分布式锁RLock lock = redisson.getLock("accountLock");try {// 模拟账户操作的过程:先获取锁,进行第一次操作lock.lock();  //+1System.out.println("Lock acquired for the first time!");// 业务逻辑:扣款deductBalance(lock);} finally {// 释放锁:必须要释放与 lock.lock() 相同次数的 unlock() 才能完全释放锁lock.unlock();  //-1System.out.println("Lock released after first operation.");}}// 模拟业务逻辑:扣款操作private static void deductBalance(RLock lock) {// 业务逻辑需要在同一个线程中再次获取锁(模拟可重入性)lock.lock();//+1try {System.out.println("Lock acquired for the second time, performing deduct balance operation...");// 扣款逻辑,比如账户余额减少System.out.println("Balance deducted!");} finally {// 释放锁lock.unlock();//-1System.out.println("Lock released after deduct balance operation.");}}

当value值为0时就会释放锁。
在这里插入图片描述

http://www.xdnf.cn/news/10774.html

相关文章:

  • 「EN 18031」访问控制机制(ACM - 1):智能路由器的安全守卫
  • SuperMap GIS基础产品FAQ集锦(20250603)
  • 人工智能在智能教育中的创新应用与未来趋势
  • 人工智能AI之机器学习基石系列 第 3 篇:选择你的“学习方法”——初探监督学习与无监督学习
  • windows安装多个版本composer
  • 基于TI DSP控制的光伏逆变器最大功率跟踪mppt
  • go语言基础|slice入门
  • VR 虚拟仿真工器具:开启医学新视界的智慧钥匙​
  • 25年宁德时代新能源科技SHL 测评语言理解数字推理Verify题库
  • 基于Android的一周穿搭APP的设计与实现 _springboot+vue
  • Oracle、PostgreSQL 与 MySQL 数据库对比分析与实践指南
  • C++学习-入门到精通【13】标准库的容器和迭代器
  • NVIDIA DOCA 3.0:引领AI基础设施革命的引擎简析
  • Qwen3高效微调
  • k8s的出现解决了java并发编程胡问题了
  • [蓝桥杯]地址转换
  • 【ISAQB大纲解读】Kafka消息总线被视为“自下而上设计”?
  • 基于PostGIS的GeoTools执行原生SQL查询制图实践-以贵州省行政区划及地级市驻地为例
  • Python Pytest
  • 接口自动化测试之pytest接口关联框架封装
  • Server2003 B-1 Windows操作系统渗透
  • React从基础入门到高级实战:React 高级主题 - React设计模式:提升代码架构的艺术
  • 无人机避障——感知部分(Ubuntu 20.04 复现Vins Fusion跑数据集)胎教级教程
  • XCTF-web-ics-05
  • 生成模型+两种机器学习范式
  • 使用大模型预测亚急性脊髓联合变性的技术方案大纲
  • react native webview加载本地HTML,解决iOS无法加载成功问题
  • 计算机网络通信技术与协议(八)----关于IS-IS的基础概念
  • HALCON 深度学习训练 3D 图像的几种方式优缺点
  • SpringBoot 系列之集成 RabbitMQ 实现高效流量控制