AQS原理

作者: 周_0717 | 来源:发表于2022-05-30 18:01 被阅读0次

AQS(AbstractQueuedSynchronizer)主要用于对资源状的态管理及等待队列的调度。资源的状态可分为:空闲、独占、共享3种;锁竞争模式可分为:公平锁和非公平锁2种。
其核心思想为:请求成功则修改资源的锁定状态,请求失败则放入等待队列等候调度。

当资源为空闲时状态时的处理比较简单,可被直接直接获取并修改状态;
当资源为共享时状态时,要根据共享条件(如共享数量上限等)判定是否可获取资源,如果失败则根据锁模式进行尝试或者进入等待;
当资源为独占时,直接根据锁模式进行尝试或者进入等待;

不同锁模式下的竞争:
非公平锁:先尝试请求一定次数,失败后放入等待队列;
公平锁:如果等待队列为空,先尝试请求一定次数,失败后放入等待队列;否则直接放入等待队列;

当资源使用完成后,需要释放对应的锁状态,以便等待队列或新建请求获取资源。AQS一般只需实现独占或共享中的一种模式。

2022-05-15

相关文章

  • AQS原理及CAS

    AQS原理 CAS原理

  • 原理剖析(第 005 篇)AQS工作原理分析

    原理剖析(第 005 篇)AQS工作原理分析 一、大致介绍 二、简单认识AQS 2.1 何为AQS? 2.2 AQ...

  • AQS详解

    AQS详解:AQS原理AQS:AbstractQuenedSynchronizer抽象的队列式同步器。是除了jav...

  • 死磕 java同步系列之AQS起篇

    问题 (1)AQS是什么? (2)AQS的定位? (3)AQS的实现原理? (4)基于AQS实现自己的锁? 简介 ...

  • J.U.C 之AQS

    J.U.C 之AQS AbstractQueuedSynchronizer - AQS 实现原理 使用Node实现...

  • AQS原理解析(二、共享模式)

    上一篇介绍了AQS独占模式的原理,参考链接AQS原理解析(一),这篇介绍一下AQS的共享模式如何实现的。 共享模式...

  • ReentrantLock(AQS),Volatile,Sync

    本文参考: JUC学习(八):AQS的CLH队列并发编程——详解 AQS CLH 锁JMM和底层实现原理 AQS ...

  • Java - AQS原理

    AQS 实现原理 AQS:AbstractQueuedSynchronizer,即队列同步器。它是构建锁或者其他同...

  • AQS之同步器

    AQS之独占锁AQS之共享锁AQS之Condition 在了解了AQS的实现原理之后再来看这些同步器会觉得很亲切,...

  • java并发包中aqs浅谈

    aqs原理 aqs即AbstractQueuedSynchronizer,是java并发包中的一个抽象类,Reen...

网友评论

      本文标题:AQS原理

      本文链接:https://www.haomeiwen.com/subject/fmgmprtx.html