【AQS源码解析】ReentrantLock的公平锁加锁解锁分析
引言
AQS是用来构建锁和其他同步组件的基础框架,它也是Java三大并发工具类(CountDownLatch、CyclicBarrier、Semaphore)的基础。ReentrantLock,甚至BlockingQueue也是基于它的实现。本文从ReentrantLock的lock()出发,从源码维度分析一个加锁解锁动作都干了什么事。
公平锁:多个线程按照申请锁的顺序去获得锁,线程会直接进入队列去排队,永远都是队列的第一位才能得到锁。
非公平锁:多个线程去获取锁的时候,会直接去尝试获取,
原创
2021-11-19 22:56:01 ·
545 阅读 ·
1 评论