ReentrantLock怎么实现非公平锁和公平锁的?
考察说明
考察ReentrantLock的AQS底层实现及公平与非公平的差异
回答思路
- 说明ReentrantLock基于AQS实现,内部维护同步器Sync类,并有FairSync和NonfairSync两个子类
- 解释非公平锁通过CAS直接抢占state,失败才进入等待队列,可能插队
- 解释公平锁在tryAcquire中检查队列中是否有前驱节点,保证先到先得
- 说明默认构造为非公平锁,可通过构造参数指定公平锁
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。