一. 面试题及剖析
1. 今日面试题
Lock锁有哪些实现类,分别有什么功能?
Lock锁的底层原理如何?
你的项目中哪里用过可重入锁(ReentrantLock)?
2. 题目剖析在上一篇文章中,壹哥给大家介绍了Lock锁的基本特性,接下来我会继续介绍Lock锁的底层原理,这才是我们面试时的重中之重,并且会在本文中分析synchronize与Lock锁的区别。
二. Lock锁的底层原理分析 1. 底层原理(重点)我们知道Lock是一个接口,平时在使用时,都是使用该接口的某个子类。我们这里分析Lock原理时,是以ReentrantLock来作为分析原理的标本。至于其他的子类,则与此大同小异,请各位自行研究。
对于Lock的底层原理,我们先简单概括一下。Lock的底层是基于AQS实现的,采用了线程独占的方式,在硬件层面依赖特殊的CAS乐观锁指令。我们常用的Lock