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

请讲一讲synchronized和ReentrantLock的区别

这道题想考察什么 ?

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

考察的知识点

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

应该如何回答?

Synchronized 的原理

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

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

  • 锁的获取和释放

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

最近更新

  1. TCP协议是安全的吗?

    2024-06-12 03:44:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-12 03:44:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-12 03:44:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-12 03:44:01       18 阅读

热门阅读

  1. 中继器简介

    2024-06-12 03:44:01       8 阅读
  2. 【MySQL】(基础篇一)—— SQL介绍和前置知识

    2024-06-12 03:44:01       5 阅读
  3. BGP宣告+自动汇总问题

    2024-06-12 03:44:01       6 阅读
  4. 2024.6.11

    2024-06-12 03:44:01       8 阅读
  5. 爬虫案例实战

    2024-06-12 03:44:01       6 阅读
  6. 6、Spring之Bean生命周期~创建Bean(2)

    2024-06-12 03:44:01       7 阅读
  7. python-Bert(谷歌非官方产品)模型基础笔记0.1.099

    2024-06-12 03:44:01       8 阅读
  8. 游戏心理学Day11

    2024-06-12 03:44:01       11 阅读
  9. 【Python】(一)复习重点——控制流

    2024-06-12 03:44:01       10 阅读
  10. C++杂记

    2024-06-12 03:44:01       12 阅读
  11. 主题切换之CSS文件篇

    2024-06-12 03:44:01       6 阅读