开篇:锁的底层框架是什么?
ReentrantLock、CountDownLatch、Semaphore、CyclicBarrier......JUC 里这么多同步工具,你有没有想过它们的底层是怎么实现的?
答案是几乎都建立在同一个基石之上:AbstractQueuedSynchronizer(抽象队列同步器,简称 AQS)。Doug Lea 设计了这套框架,让同步器的开发者只需要关心"什么时候能拿到资源、什么时候释放资源"这两个问题,排队、阻塞、唤醒这些脏活累活全由 AQS 包办。
可以说,理解了 AQS,就理解了 JUC 的半壁江山。
大约 12 分钟