什么是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 AbstractQueuedSynchronizer
    extends AbstractOwnableSynchronizer
    implements 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;
    }
}    

相关推荐

  1. 什么CAS什么AQS,两者到底有什么区别

    2023-12-06 00:56:13       30 阅读
  2. 什么CI/CD流水线

    2023-12-06 00:56:13       12 阅读
  3. 分布式【4. 什么 CAP?】

    2023-12-06 00:56:13       34 阅读
  4. CV】计算机视觉什么

    2023-12-06 00:56:13       10 阅读
  5. 什么ac

    2023-12-06 00:56:13       19 阅读
  6. AI什么

    2023-12-06 00:56:13       14 阅读
  7. 什么ar.exe?

    2023-12-06 00:56:13       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 00:56:13       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 00:56:13       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 00:56:13       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 00:56:13       18 阅读

热门阅读

  1. vue el-cascader 省市区封装及使用

    2023-12-06 00:56:13       39 阅读
  2. Go函数和方法之间有什么区别

    2023-12-06 00:56:13       38 阅读
  3. 大厂面试整理

    2023-12-06 00:56:13       52 阅读
  4. Linux-hid

    2023-12-06 00:56:13       28 阅读
  5. 一文详解Docker数据卷(volume)

    2023-12-06 00:56:13       38 阅读
  6. 安装vscode插件与安装vue项目

    2023-12-06 00:56:13       40 阅读
  7. webpack对项目进行优化

    2023-12-06 00:56:13       36 阅读
  8. CoreDns在K8S中的作用原理概述

    2023-12-06 00:56:13       31 阅读
  9. expect自动化交互

    2023-12-06 00:56:13       40 阅读
  10. Docker 安装 Nacos

    2023-12-06 00:56:13       39 阅读
  11. 前端实现websocket的应用场景以及逻辑实现

    2023-12-06 00:56:13       32 阅读