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

相关推荐
卓怡学长几秒前
w269基于spring boot + vue 候鸟监测数据管理系统
java·数据库·spring boot·spring·intellij-idea
孫治AllenSun20 分钟前
【MDC】使用 MDC 封装一个 LogMdcUtil 工具类
java·spring boot·后端
济*沧*海28 分钟前
BaseMapper的介绍
java·windows·tomcat
李燚34 分钟前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
plainGeekDev35 分钟前
依赖管理 → Version Catalog
android·java·kotlin
2zcode1 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗1 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python
LONGZETECH1 小时前
新能源汽车动力电池检测仿真教学系统:C/S 分层架构与数字化实训落地全解析
大数据·c语言·开发语言·人工智能·架构·系统架构·汽车
郝学胜-神的一滴1 小时前
中级OpenGL教程 013:渲染器类架构设计与逐帧渲染流程详解
开发语言·c++·unity·游戏引擎·图形渲染·opengl·unreal
淘源码d2 小时前
医学影像云PACS系统——PACS诊断工作站
java·源码·影像处理·医院管理系统·影像工作站·云pacs系统·dicom 标准通信