文章预览
今天我想和大家聊一聊一个在多线程编程中非常重要的话题—— ReentrantLock是怎么实现公平锁的 。在这篇文章里,我会从技术的角度,结合代码示例,带大家深入了解这个概念,以及它在实际使用中的表现。 首先,很多人听到 公平锁 和 非公平锁 这两个概念,可能有些困惑。它们究竟有什么区别呢?公平锁顾名思义,就是在多个线程请求锁的时候,按照请求的顺序来分配锁,确保“先来先得”。 而非公平锁则比较随意,它并不严格按照请求顺序来分配锁,可能某些线程在后申请的情况下,优先获得锁。 我们以ReentrantLock为例,来深入探讨这两者是如何在实现上有所区别的。 ReentrantLock的实现分为两种模式,一种是 公平锁 ,另一种是 非公平锁 。公平锁的关键在于,当线程请求锁时,会首先检查是否有线程已经在排队等待锁。 如果有,那么当前线
………………………………