ReentrantLock

可重入锁:在以前,Synchronized不够强壮,功能不够强大时,ReentrantLock就是用来实现可重入锁的;

传统的锁的风格,这个对象提供了两个方法:lock,unlock;这种写法就容易引起,加了锁之后,忘记解锁;


ReentrantLock 与 cynchronized 不同点

1.RnentrantLock 提供了 tryLock操作;

lock直接进行加锁,如果加锁不成功,就要进行阻塞;

tryLock 尝试进行加锁,加锁不成功,不阻塞,直接返回 false;

通过tryLock 提供了更多的 "可操作空间"

2.ReentrantLock 提供了 公平锁的实现

synchronized 时、是非公平锁;

3.搭配的等待通知机制不同

synchronized 搭配 wait / notify

RenentrantLock 搭配 Condition 类 功能比 wait / notify 略强一些;

绝大部分开发中使用 synchronized

相关推荐
Access开发易登软件10 小时前
Access 和 SQLite,根本不在一个赛道上
java·jvm·数据库·sqlite·excel·vba·access开发
小马爱打代码11 小时前
Spring源码 第十篇:Spring 5 源码深度拆解 - Spring 类型转换与校验体系
java·spring
长谷深风11111 小时前
Java 面试高频:反射机制与异常体系全面解析
java·开发语言·面试·exception·java 反射·java 异常·class 对象
过期动态11 小时前
【LeetCode 热题 100】盛最多水的容器
java·数据结构·spring boot·算法·leetcode·spring cloud·职场和发展
一 乐11 小时前
疫苗发布和接种预约|基于Java+vue疫苗发布和接种预约系统设计与实现(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·疫苗发布和接种预约系统系统
2301_7807896611 小时前
高防cdn如何缓存网页静态资源
java·spring·web安全·缓存·kubernetes·ddos
小马爱打代码11 小时前
Spring源码 第十一篇:Spring 扩展点全解析 - 从容器启动到 Bean 生命周期的完整执行时序
java·后端·spring
fantasy_arch11 小时前
BasicVSR-lite图像画质增强
开发语言·pytorch
Rust语言中文社区11 小时前
【Rust日报】2026-05-24 Secluso v1.0.2 版本发布
开发语言·后端·rust
RainCity11 小时前
Java Swing 自定义组件库分享(九)
java·笔记·后端