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

【Android面试八股文】请讲一讲synchronized和ReentrantLock的区别

文章目录

  • 请讲一讲synchronized和ReentrantLock的区别
    • 这道题想考察什么 ?
    • 考察的知识点
    • 应该如何回答?
      • Synchronized 的原理
      • ReentrantLock 的原理
      • Synchronized 和 ReentrantLock 的区别
      • 总结

请讲一讲synchronized和ReentrantLock的区别

这道题想考察什么 ?

  1. 是否了解并发相关的理论知识
  2. 是否对于锁机制有个全面的理论认知
  3. 是否对于AQS原理有自己的理解

考察的知识点

  1. 锁的分类(公平锁、重入锁、重力度锁等等 )
  2. ReentrantLock实现方式与Synchronized实现方式的异同点

应该如何回答?

Synchronized 的原理

Synchronized 是 Java 语言中的关键字,用于声明一个方法或代码块为同步区域。在进入这个同步区域时,线程必须先获得相应的锁。

  • 对象监视器:每个对象都有一个隐式的监视器锁(monitor lock)。当一个线程进入一个被 synchronized 修饰的方法或代码块时,它会自动获得这个对象的监视器锁。

  • 锁的获取和释放

    • 当线程进入 synchronized 方法或代码块时,它会尝试获取对象的监视器锁。如果该锁已经被其他线程持有,那么当前线程会被阻塞,直到锁被释放。
    • 当线程离开 synchronized 方法或代码块时,监视器锁会被自动释放。
  • 示例:

http://www.lryc.cn/news/369783.html

相关文章:

  • springmvc 全局异常处理器配置的三种方式深入底层源码分析原理
  • MySQL 8.0 安装、配置、启动、登录、连接、卸载教程
  • Pythone 程序打包成 exe
  • “卫星-无人机-地面”遥感数据快速使用及地物含量计算
  • 设计模式学习(二)工厂模式——简单工厂模式
  • 贷款业务——LPR、APR、IRR
  • Simscape Multibody与RigidBodyTree:机器人建模
  • 数据结构刷题-链表
  • Java应届第一年规划
  • js之简单轮播图
  • GitLab教程(二):快手上手Git
  • 前端渲染大量数据思路【虚拟列表】【异步机制】
  • Ubuntu24.04记录网易邮箱大师的安装
  • PDF编辑与转换的终极工具智能PDF处理Acrobat Pro DC
  • Django UpdateView视图
  • 【CS.SE】2024年,你应该选择计算机专业吗?详细分析与未来展望
  • 后端开发面经系列 -- 华为OD -- C++面经(全)
  • 3072. 将元素分配到两个数组中 II Rust 线段树 + 离散化
  • day35|1005.K次取反后最大化的数组和 134. 加油站135. 分发糖果
  • HWA和BSS区别
  • 【Excel】Excel中将日期格式转换为文本格式,并按日期显示。
  • 物联网学习小记
  • 代码随想录-Day29
  • C/C++ 进阶(6)红黑树
  • 【Vue】构建vuex-cart模块
  • 如何成为嵌入式系统工程师?
  • 【AI大模型】Transformers大模型库(七):单机多卡推理之device_map
  • 驱动代码编写(一)
  • Prompt-to-Prompt Image Editing with Cross Attention Control
  • 实验11 OSPF协议配置