队列同步器(AQS)个人理解,通俗易懂

本文介绍了AQS(AbstractQueuedSynchronizer)的概念,它是一个用于构建自定义锁和其他同步组件的框架。AQS维护了一个同步队列,线程在获取同步状态失败时会被加入队列并自旋等待。同步状态的获取与释放分为独占式和共享式,其中独占式不响应中断,而共享式允许多个线程同时访问。此外,还提到了独占式超时获取同步状态的方法。
摘要由CSDN通过智能技术生成

AQS到底是个什么东西???

在家自学java并发编程的艺术,晦涩难懂,看到aqs的时候每个字都读懂了,看完之后完全不知道在说啥,大脑一片空白。今天拿起书本索性又看了几遍,有了点感悟,分享给大家!!!

**要我个人理解就是一个用来构建自己的锁的jdk提供的框架。**如果你想构建自己的锁,你就定义一个类来继承AbstractQueuedSynchronizer实现它提供的方法就行了。
下面是aqs提供的方法大致三类:独占式获取与释放同步状态、共享式获取与释放,同步状态和查询同步队列中的等待线程情况
在这里插入图片描述

aqs的实现分析

主要包括:同步队列、独占式同步状态获取与释放、共享式同步状态获取与释放以及超时获取同步状态等同步器的核心数据结构与模板方法。

1.同步队列
同步器依赖内部的同步队列(一个FIFO双向队列)来完成同步状态的管理,当前线程获取同步状态失败时,同步器会将当前线程以及等待状态等信息构造成为一个节点(Node)并将其加入同步队列,同时会阻塞当前线程,当同步状态释放时,会把首节点中的线程唤醒,使其再次尝试获取同步状态。

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值