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

synchronized 、ReentrantLock

synchronizedReentrantLock 都是用于实现多线程同步的机制:

  1. 锁的获取方式:

    • synchronized 是内置的 Java 关键字,它通过对象的内置监视器来获取锁。每个对象都有一个关联的监视器,只有一个线程可以获得对象的监视器,其他线程必须等待。
    • ReentrantLock 是一个类,它提供了显式的锁,通过创建 ReentrantLock 实例并调用其 lock() 方法来获取锁。
  2. 可中断性:

    • ReentrantLock 支持可中断的锁获取,即线程可以在等待锁的过程中响应中断。
    • synchronized 不支持可中断性,一旦线程等待锁,只能等待锁被释放或线程被中断。
  3. 公平性:

    • ReentrantLock 可以选择是否使用公平锁。公平锁会按照请求锁的顺序分配锁,确保所有线程都有机会获得锁。非公平锁则不考虑等待线程的顺序。
    • synchronized 是非公平锁,不考虑等待线程的顺序。
  4. 灵活性:

    • ReentrantLock 提供了更多的灵活性,如超时获取锁、尝试获取锁、条件等待等功能。这使得它在某些复杂的同步需求下更有优势。
    • synchronized 提供的功能相对较少。
    • </
http://www.lryc.cn/news/206318.html

相关文章:

  • 用VSCODE启动Java项目
  • 最简单的修改linux系统上Docker的镜像源
  • layui移除(删除)table表格的一行
  • 67 跳跃游戏 II
  • 客户中心模拟(Queue and A, ACM/ICPC World Finals 2000, UVa822)rust解法
  • 方案聚焦:高可用的F5分布式云DNS负载均衡
  • 大数据性能测试方案-V1.0
  • Kafak - 单机/集群快速安装指北(3.x版本)
  • 互联网Java工程师面试题·Spring篇·第五弹
  • XTU-OJ 1221-Binary
  • Chromium源码由浅入深(三)
  • 如何集成验证码短信API到你的应用程序
  • Linux- 由映射文件I/O问题引出的SIGBUS 空洞文件(Sparse File)
  • 代码随想录图论 第二天 | 695. 岛屿的最大面积 1020. 飞地的数量
  • R语言代码示例
  • ESP32网络开发实例-将 ESP32 连接到 EMQX Cloud MQTT Broker
  • 基于Kubesphere容器云平台物联网云平台Devops实践
  • 淘宝商品详情页API接口|tb获取商品主图接口
  • JAVA面试笔记
  • 尚硅谷Flume(仅有基础)
  • JS中this的绑定规则
  • 酷开科技 | 酷开系统大屏电视,打造精彩家庭场景
  • GDPU 数据结构 天码行空6
  • 机器学习实验三:决策树-隐形眼镜分类(判断视力程度)
  • 广州华锐互动:VR技术应用到工程项目施工安全培训的好处
  • Hadoop3.0大数据处理学习1(Haddop介绍、部署、Hive部署)
  • C笔记:引用调用,通过指针传递
  • 【方法】如何给PDF文件添加“打开密码”?
  • 单源最短路径 -- Dijkstra
  • Java--多态及抽象类与接口