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

synchronized和ReentrantLock

ReentrantLock

可重入互斥锁,和synchronized的定位类似,都用于实现互斥效果,保证线程安全。

ReentrantLock的用法:

  • lock():加锁,获取不到锁就死等
  • trylock():超时时间加锁
    如果设置了超时参数,超时后放弃加锁
    如果不设置超时参数,不会导致阻塞,加锁成功返回true,失败返回false
  • unlock():解锁
ReentrantLock lock = new ReentrantLock(); -------------------------------------------------- lock.lock(); try { //working } finally { lock.unlock(); }

ReentrantLock和synchronized的区别

  1. synchronized是一个关键字,是JVM内部实现的(大概率是基于C++实现)
    ReentrantLock是标准库的一个类,在JVM外实现的(基于Java实现)
  2. synchronized使用代码块进行加锁解锁,不需要考虑解锁问题
    ReentrantLock需要lock/unlock方法,使用灵活,但是容易遗漏unlock
  3. synchronized在申请锁失败后会死等
    ReentrantLock可以使用trylock方法等待一段时间后就放弃
  4. synchronized是非公平锁
    ReentrantLock默认是非公平锁,但是可以通过构造方法传入一个true开启公平锁模式
  5. synchronized使用Object类的wait/notify实现等待/唤醒,每次唤醒都是随机唤醒
    ReentrantLock可以搭配Condition类实现等待/唤醒,可以更精准得唤醒某个指定的线程。
  • 竞争不激烈的时候使用synchronized锁,效率更高,自行解锁更方便
  • 锁竞争激烈的时候使用ReentrantLock锁,搭配trylock方法更灵活得控制加锁,而不是死等
  • 如果要使用公平锁,使用ReentrantLock锁
http://www.jsqmd.com/news/206998/

相关文章:

  • [论文阅读]One Shot Dominance: Knowledge Poisoning Attack on Retrieval-Augmented Generation Systems
  • 掌握核心!如何成为优秀提示工程架构师
  • JVM-垃圾回收算法
  • PrimeTime roport timing语法
  • 2026必备!本科生毕业论文AI工具TOP8测评
  • 【Python】字符串类型之间比较大小
  • echarts实现3d饼图
  • 水库大坝安全监测:无人测量船的关键应用场景
  • 【计算机毕业设计案例】深度学习基于CNN卷积网络的蔬菜识别基于CNN卷积网络的蔬菜识别
  • python基于django的社区流浪动物领养管理系统_65kwrn28
  • 提示工程数据坑:架构师视角下的6个数据质量导致的失败案例
  • andorid 学习之ContentProvider 和 ContentResolver 使用笔记
  • python基于django的群众网上高效办事系统的设计与实现_6e4j9xi1
  • python基于django的食品仓库管理系统_2i4gc8z0
  • 协方差矩阵计算
  • python基于django的企业人力资源招聘管理系统_fsjuwx26
  • 【Python】五大数据容器之间的区别
  • 深度学习毕设项目推荐-基于CNN深度学习的遥感图片识别沙漠湖泊和森林基于CNN深度学习的遥感图片识别沙漠湖泊和森林
  • python基于django的汽车租赁买卖管理系统_189h7k1a
  • python基于django的申家沟村务管理系统_村委会管理系统3bm52uvo
  • 深度学习毕设项目推荐-基于CNN卷积网络的蔬菜识别基于深度学习卷积网络的蔬菜识别
  • python基于django的社区健身器材报修系统 公园管理系统_g9741947
  • HTTP 错误码
  • 毕业论文AI率太高怎么办?降ai率从80%降到15%!免费降ai率工具实测。
  • 学长亲荐2026研究生AI论文工具TOP10:开题文献综述全攻略
  • python基于django的社区团购系统_0d5k06f6
  • 【k8s设置污点/容忍】
  • 2026毕业生必看!4个实测降ai率工具4,教你如何利用ai降ai技巧,轻松实现免费降低ai率。
  • 4款亲测免费降ai率工具推荐!3分钟把论文降ai检测值降到10%以下,附aigc免费降重全教程。
  • python基于django的人力资源管理系统_企业员工信息管理系统 主管lod65og9