synchronized 和 ReentrantLock 的区别是什么

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点

面试官:synchronized 和 ReentrantLock 的区别是什么

1. 获取锁的方式

  • synchronizedsynchronized的锁获取是隐式的。当线程进入synchronized修饰的代码块或方法时,它会自动获取锁,并在退出时自动释放锁。这种隐式的方式简化了编程模型,但可能不如显式锁灵活。
  • ReentrantLockReentrantLock的锁获取是显式的。线程需要手动调用lock()方法来获取锁,并在需要时调用unlock()方法来释放锁。这种显式方式提供了更多的控制,但也增加了编程的复杂性。

2. 锁的公平性

  • synchronizedsynchronized是非公平锁,这意味着等待锁的线程不一定按照它们请求锁的顺序来获得锁。这可能导致线程饥饿问题,即某些线程长时间得不到执行。
  • ReentrantLockReentrantLock可以是公平锁或非公平锁。当设置为公平锁时,等待时间最长的线程会优先获得锁,这有助于避免线程饥饿问题。默认情况下,ReentrantLock是非公平锁,但可以通过

相关推荐

  1. synchronized ReentrantLock 区别什么

    2024-03-30 17:10:02       44 阅读
  2. Synchronized ReentrantLock 区别

    2024-03-30 17:10:02       56 阅读
  3. SynchronizedReentranLock区别

    2024-03-30 17:10:02       27 阅读
  4. synchronized Lock 区别什么

    2024-03-30 17:10:02       45 阅读
  5. synchronizedvolatile区别

    2024-03-30 17:10:02       52 阅读
  6. Synchronizedvolatile区别

    2024-03-30 17:10:02       57 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-30 17:10:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-30 17:10:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-30 17:10:02       82 阅读
  4. Python语言-面向对象

    2024-03-30 17:10:02       91 阅读

热门阅读

  1. 创新研报 | 2024+人工智能安全报告

    2024-03-30 17:10:02       44 阅读
  2. 海外服务器受到黑客攻击怎么办

    2024-03-30 17:10:02       38 阅读
  3. 小米汽车发布了

    2024-03-30 17:10:02       52 阅读
  4. 互联网找工作该选择大公司还是小公司

    2024-03-30 17:10:02       43 阅读
  5. 如何系统地自学 Python?

    2024-03-30 17:10:02       42 阅读
  6. P1629 邮递员送信

    2024-03-30 17:10:02       46 阅读
  7. 如何跟老板汇报工作

    2024-03-30 17:10:02       39 阅读
  8. jenkins

    jenkins

    2024-03-30 17:10:02      33 阅读