synchronized和reentrantlock之间的区别

简介: synchronized和reentrantlock之间的区别

相同点:

synchronized 和 ReentrantLock 都是 Java 中提供的可重入锁


不同点:

用法不同:synchronized 可以用来修饰普通方法、静态方法和代码块;ReentrantLock 只能用于代码块;

synchronized退出代码块就自动释放锁,reentrantlock必须手动加锁,手动释放锁,注意要用try-finally处理加锁和释放锁的代码

synchronized只支持非公平锁,reentrantlock支公平锁,也支持非公平锁,通过构造方法的参数指定

ReentrantLock可以根据不同的条件进行唤醒和休眠

synchronized在申请锁失败时,会一直等待锁资源,ReentrantLock可以通过trylock()等待一段时间就放弃

synchronized是JVM对锁的实现,最终通过调用cpu的加锁指令,ReentrantLock是java层面的JUC包中的一组实现类(底层实现不同:synchronized 是 JVM 层面通过监视器实现的;ReentrantLock 是基于 AQS 实现的。)


目录
打赏
0
0
0
0
2
分享
相关文章
微服务Consul集群搭建
Consul是HashiCorp的开源工具,用于服务发现、配置管理和分布式一致性。它提供服务注册与发现、健康检查、KV存储、多数据中心支持,并基于Raft协议保证一致性。Consul还具有DNS接口和Web UI。要安装,可从HashiCorp或阿里云下载,使用`yum`在Linux上安装。启动单机模式用`consul agent -dev`,集群部署涉及配置文件如`/etc/consul.d/consul.hcl`。常用命令包括启动、加入集群、查看成员及服务管理等。
微服务Consul集群搭建
图解IO多路复用模型之select、poll、epoll
图解IO多路复用模型之select、poll、epoll
207 0
GitHub上获赞上万的阿里亿级并发系统设计手册,让你吊打面试官
金九银十已经接近尾声,很多没有在这个时间段找到工作的小伙伴已经开始备战秋招了,在这里给大家分享一份阿里10亿级并发系统设计手册,专门给没有系统设计相关经验的小伙伴应对面试用的,下面将这么手册的内容以截图的形式展示给大家,有需要的小伙伴可以文末获取↓↓↓此份手册又份为六个部分,基础篇、数据库篇、缓存篇、消息队列篇、分布式服务篇、维护篇、实战篇共计328页 目录总览 基础篇 高并发代表着大流量,高并发系统设计的魅力就在于我们能够凭借自己的聪明才智设计巧妙的方案,从而抵抗巨大流量的冲击,带给用户更好的使用体验。这些方案好似能操纵流量,让流量更加平稳得被系统中的服务和组件处理。
GitHub上获赞上万的阿里亿级并发系统设计手册,让你吊打面试官
消息中间件系列教程(14) -RabbitMQ-自动补偿机制
消息中间件系列教程(14) -RabbitMQ-自动补偿机制
340 0
Linux RPM包安装、卸载和升级
我们以安装 apache 程序为例。因为后续章节还会介绍使用源码包的方式安装 apache 程序,读者可以直观地感受到源码包和 RPM 包的区别。 RPM包默认安装路径 通常情况下,RPM 包采用系统默认的安装路径,所有安装文件会按照类别分散安装到表 1 所示的目录中。 RPM 包的默认安装路径是可以通过命令查询的。 除此之外,RPM 包也支持手动指定安装路径,但此方式并不推荐。因为一旦手动指定安装路径,所有的安装文件会集中安装到指定位置,且系统中用来查询安装路径的命令也无法使用(需要进行手工配置才能被系统识别),得不偿失。 与 RPM 包不同,源码包的安装通常采用手动指定安装路径(
210 1
10、RabbitMQ教程-消息的两种消费模式
10、RabbitMQ教程-消息的两种消费模式
689 0
1000个并发线程,10台机器,每台机器4核,设计线程池大小 (2)
1000个并发线程,10台机器,每台机器4核,设计线程池大小 (2)
506 0
1000个并发线程,10台机器,每台机器4核,设计线程池大小 (2)
SpringBoot + SpringCloud 构建分布式、负载均衡系统,前后分离企业级快速开发脚手架
SpringBoot + SpringCloud 构建分布式、负载均衡系统,前后分离企业级快速开发脚手架
489 0
Spring Cloud架构的各个组件的原理分析
Spring Cloud架构的各个组件的原理分析
740 0
Spring Cloud架构的各个组件的原理分析
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等

登录插画

登录以查看您的控制台资源

管理云资源
状态一览
快捷访问