操作系统答题框架

乐观锁和悲观锁有什么区别?

synchronized 是 JVM 内置锁,语法简单,自动释放;ReentrantLock 是显式锁,支持可中断、超时、公平锁和多个 Condition。 底层可以从对象头、Monitor、锁升级,以及 AQS 队列同步器两个方向展开。

面试操作系统

答题框架

当前只提供答题框架,不代表已经完成事实与工程边界复核。

这题可以按「结论 -> 原理 -> 场景 -> 风险」来答,重点放在操作系统里的可落地理解。 答题要点: 1. synchronized 是 JVM 内置锁,语法简单,自动释放;ReentrantLock 是显式锁,支持可中断、超时、公平锁和多个 Condition。 2. 底层可以从对象头、Monitor、锁升级,以及 AQS 队列同步器两个方向展开。 3. 选择上,普通互斥优先 synchronized;需要复杂等待通知、超时或公平性时使用 ReentrantLock。 容易被追问: - AQS 的 state 和队列分别做什么? - 锁升级过程是什么? 注意事项: - 手写 Lock 必须在 finally 释放。 - 不要只背区别,要结合业务场景选择。

答题练习

  1. 1synchronized 是 JVM 内置锁,语法简单,自动释放;ReentrantLock 是显式锁,支持可中断、超时、公平锁和多个 Condition。
  2. 2底层可以从对象头、Monitor、锁升级,以及 AQS 队列同步器两个方向展开。
  3. 3选择上,普通互斥优先 synchronized;需要复杂等待通知、超时或公平性时使用 ReentrantLock。

常见错误

  • 手写 Lock 必须在 finally 释放。
  • 不要只背区别,要结合业务场景选择。

可能追问

  • AQS 的 state 和队列分别做什么?
  • 锁升级过程是什么?

来源记录

原始来源
小林coding
来源页面
操作系统面试题
最近收录
2026-07-04
官方复核
操作系统面试题、用户态和内核态、用户态和内核态的区别?、进程管理、线程和进程的区别是什么?、进程,线程,协程的区别是什么?、为什么进程崩溃不会对其他进程产生很大影响、你说到进程是分配资源的基本单位,那么这个资源指的是什么?、讲下为什么进程之下还要设计线程?、多线程比单线程的优势,劣势?、多线程是不是越多越好,太多会有什么问题?、进程切换和线程切换的区别?