美文网首页
高并发(15)-AQS

高并发(15)-AQS

作者: 残冬十九 | 来源:发表于2020-04-07 07:33 被阅读0次

    @TOC

    前言

    上篇文章讲解了CLH队列锁,今天讲讲AQS

    什么是AQS

    AQS(AbstractQueuedSynchronizer),它是一个队列同步器,是java并发用来构建锁的基础框架。算是线程之间同步的规范。它实现了一个FIFO(FirstIn、FisrtOut先进先出)的队列。底层实现的数据结构是一个双向链表。

    AQS的实现方式

    AQS是一个抽象类,使用方式则是主要使用继承。子类通过继承AQS并且实现抽象方法来管理。AQS本身没有实现任何同步接口,而是是用模版模式,定义了同步状态与获取锁和释放锁的方法。

    AQS原理

    AQS内部维护了一个CLH队列来管理锁,有个state属性,通过state属性来标识锁状态,如下图所示,需要锁的就去尝试获得锁,检测state的状态,如果没有获取到锁,就封装成一个node节点加入到队列中。


    在这里插入图片描述

    相关文章

      网友评论

          本文标题:高并发(15)-AQS

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