论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com
»
论坛
›
物联网
›
物联网
›
Java并发—ReetrantLock详解及应用
Java并发—ReetrantLock详解及应用
宝塔山
论坛元老
|
2024-8-11 04:11:45
|
显示全部楼层
|
阅读模式
楼主
主题
1023
|
帖子
1023
|
积分
3069
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
目录
一、ReetrantLock的特性
1、非阻塞获取锁
2、带超时的锁获取:
3、锁的公平性
4、锁的可停止性
5、Condition条件变量
6、锁的可重入性
可重入锁
不可重入锁
7、性能优化
二、ReentrantLock和Synchronized的区别
1、语法和使用方式
2、锁的获取和释放
3、高级特性
4、条件变量
5、性能
总结
三、ReentrantLock使用场景
之前的文章Java并发—synchronized关键字的应用-CSDN博客报告了sychronized的应用,那为什么还需要其他的锁呢?
在使用
Synchronized
,会存在以下几个题目:
不可停止锁,需要线程实验完才会释放锁(synchronized的获取和释放锁由jvm实现)
非公平锁
Synchronized引入了偏向锁,轻量级锁(自旋锁)后,性能有所提升
synchronized属于
隐式锁
,即锁的持有与释放都是隐式的,可能会导致死锁
为了可以灵活地控制锁,就需要使用到
显式锁
,即锁的持有和释放都必须手动编写
ReentrantLock
是一把
可重入锁
和
互斥锁
,它具有与
Synchronized
关键字类似的含有隐式监视器锁(monitor)的基本行为和语义,但是它比
Synchronized
具有更多的方法和功能
在Java 1.5中,官方在concurrent并发包中加入了
Lock
接口,ReentrantLock位于java.util.concurrent.locks包下,实现了
Lock
接口和
Serializable
接口,该接口中提供了
lock()
方法和
unLock()
方法对显式加锁和显式释放锁利用举行支持
public class ReentrantLock implements Lock, java.io.Serializable {……}
复制代码
Lock lock = new ReentrantLock();
public void save(){
try{
lock.lock();
//业务代码……
}finally{
lock.unlock();
}
}
复制代码
从上述代码可以使用ReentrantLock来管理锁,确保在save方法实验期间对资源的独占访问。通过try-finally结构确保纵然发生异常也能精确地使用lock.unlock()释放锁
ReentrantLock实现了Lock接口,Lock接口是Java中对锁利用行为的同一规范
ReentrantLock结构:
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
宝塔山
论坛元老
这个人很懒什么都没写!
楼主热帖
Sqlserver2012卸载
Maxwell 一款简单易上手的实时抓取Mysq ...
分布式事务 | 使用DTM 的Saga 模式 ...
哈工大信息安全概论期末复习 ...
WebLogic JNDI注入(CVE-2021-2109) ...
HTTPS基础原理和配置-3
轻量级CI/CD发布部署环境搭建及使用_03 ...
数字IC-1.9 吃透通信协议中状态机的代 ...
[DuckDB] 多核算子并行的源码解析 ...
.NET服务治理之限流中间件-FireflySoft ...
标签云
AI
运维
CIO
存储
服务器
浏览过的版块
移动端开发
DevOps与敏捷开发
分布式数据库
Mysql
Oracle
网络安全
快速回复
返回顶部
返回列表