ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

什么是CAS, 什么是AQS

2026/8/15 18:16:39 拓冰建站 浏览量
什么是CAS, 什么是AQS

文章目录

  • 什么是CAS, 什么是AQS
    • CAS
    • AQS

什么是CAS, 什么是AQS

CAS

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

AQS

AQS 全称是AbstractQueuedSynchronizer, 是juc 下一个核心的抽象类,用于构建各种同步器和锁

比如我们熟悉的 ReentrantLock、ReadWriteLock、CountDownLatch等等是基于AQS.

首先在AQS 里面,有几个核心的组成

● 有volatile修饰的 state 变量: 共享资源的状态

● 以Node节点组成的双端队列——CLH 也是由volatile进行修饰

● 两个维护队列的Node节点head 和 tail

AQS 基本的属性——源码

public abstract class AbstractQueuedSynchronizerextends AbstractOwnableSynchronizerimplements java.io.Serializable {//头节点private transient volatile Node head;//尾节点private transient volatile Node tail;//同步状态private volatile int state;   static final class Node {//节点状态volatile int waitStatus;//前驱节点volatile Node prev;//后继节点volatile Node next;//当前节点所代表的线程volatile Thread thread;//等待队列使用时的后继节点指针Node nextWaiter;}
}