腾讯面试题 你了解ReentrantLock吗? ReetrantLock是一个可重入的独占锁,主要有两个特性,一个是支持公平锁和非公平锁,一个是可重入。 ReetrantLock实现依赖于AQS(AbstractQueuedSynchronizer)(不懂得话可以看我上篇博客)。 ReetrantLock主要依靠AQS维护一个阻塞队列,多个线程对加锁时,失败则会进入阻塞队列。等待唤醒,重新尝试加锁。下图是其类图 支持公平锁和非公平锁 公平锁:多个线程申请获取同一资源时,必须按照申请顺序,依次获取资源。 非公平锁:资源释放时,任何线程都有机会获得资源,而不管其申请顺序。 具体原理分析 在ne