后端岗位面试题更新 2026-08-05

ReentrantLock怎么实现非公平锁和公平锁的?

贝壳找房后端开发互联网/IT技术原理方案权衡Java

考察说明

考察ReentrantLock的AQS底层实现及公平与非公平的差异

回答思路

  1. 说明ReentrantLock基于AQS实现,内部维护同步器Sync类,并有FairSync和NonfairSync两个子类
  2. 解释非公平锁通过CAS直接抢占state,失败才进入等待队列,可能插队
  3. 解释公平锁在tryAcquire中检查队列中是否有前驱节点,保证先到先得
  4. 说明默认构造为非公平锁,可通过构造参数指定公平锁
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。