万字长文分析 AQS 原理以及应用

摘要

AQS,即 juc 并发包下的 AbstractQueuedSynchronizer,我们也可以叫做抽象队列同步器。其实现了一种基于队列的阻塞锁以及相关的同步器,AQS 可以用作单个int变量表示 state(状态)的同步器的基准。我们熟悉的一些并发工具 ReentrantLock、ReentrantReadWriteLock、Semaphore、CountDownLatch 都是基于 AQS 实现的。AQS 定义了同步相关的一些公共 API 方法,以及预留了一些protect方法供子类实现(子类只要使用就必须实现),AQS 并不负责状态变更维护以及同步机制,对于不同的子类实现,其状态量state所表示的含义不同,子类通过实现 protect 方法达到原子性的变更状态量 state 以及阻塞释放等同步机制。

欢迎在评论区写下你对这篇文章的看法。

评论

首页 - Wiki
Copyright © 2011-2024 iteam. Current version is 2.124.0. UTC+08:00, 2024-04-24 02:05
浙ICP备14020137号-1 $访客地图$