当前位置: 首页 > news >正文

什么是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;}
}    
http://www.lryc.cn/news/250546.html

相关文章:

  • 蓝桥杯每日一题2023.12.1
  • 正则表达式从放弃到入门(1):“正则表达式”是什么?
  • SQL解惑 - 谜题2
  • FWT+高维前缀和:Gym - 103202M
  • 【C++】string类的接口综合运用
  • 分布式ID生成框架Leaf升级踩坑
  • 常用的设计模式
  • git的相关实用命令
  • 【使用`model.status`来获取gurobi求解过程中的模型状态】
  • 【UGUI】Unity教程:实现物品的拖拽功能
  • 【奇淫技巧】两数交换
  • Java核心知识点整理大全26-笔记
  • “上云”还是“下云”?探云计算的下一站未来!
  • Linux中top命令输出日志分析?
  • 执行栈和执行上下文
  • 7、单片机与W25Q128(FLASH)的通讯(SPI)实验(STM32F407)
  • stream流和方法引用
  • Redis——某马点评day01——短信登录
  • AES加密技术:原理与应用
  • Unity中PlayerPrefs在PC上存储位置总结
  • 消融实验:深度学习的关键分析工具
  • Redis缓存——Spring Cache入门学习
  • Python标准库copy【侯小啾python领航班系列(十五)】
  • Android--Jetpack--Lifecycle详解
  • LeetCode105.从前序和中序遍历序列构造二叉树
  • flutter-一个可以输入的数字增减器
  • 抑郁症中西医治疗对比?
  • 012 OpenCV sobel边缘检测
  • 【开源视频联动物联网平台】libmodbus 写一个modbus tcp客户端
  • 安装以及使用 stylepro_artistic 所遇问题解决