开发者社区> 问答> 正文

什么是AQS呢?

什么是AQS呢?

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-11-11 14:58:32 7964 0
6 条回答
写回答
取消 提交回答
  • AbstractQueueSynchronized的缩写,也叫抽象的队列式同步器。定义了一套多线程访问共享资源的同步器框架。 字如其名,他是一个抽象类,所以大部分同步类都是继承于它,然后重写部分方法即可。 比如说ReentrantLock/Sema phore/CountDownLatch都是AQS的具体实现类

    2020-08-03 21:20:42
    赞同 展开评论 打赏
  • AbstractQueuedSynchronizer:抽象同步队列,简称AQS主要依赖一个int成员变量来表示同步状态state,以及一个CLH等待队列

    2020-04-15 22:54:14
    赞同 展开评论 打赏
  • 下一站是幸福

     AQS是AbstractQueuedSynchronizer的简称。AQS提供了一种实现阻塞锁和一系列依赖FIFO等待队列的同步器的框架

    2020-03-18 23:15:52
    赞同 展开评论 打赏
  • AQS(AbstractQueuedSynchronizer)同步器是用来构建锁和其他同步组件的基础框架,它的实现主要依赖一个int成员变量来表示同步状态以及通过一个FIFO队列构成等待队列。它的子类必须重写AQS的几个protected修饰的用来改变同步状态的方法,其他方法主要是实现了排队和阻塞机制。状态的更新使用getState,setState以及compareAndSetState这三个方法。 子类被推荐定义为自定义同步组件的静态内部类,同步器自身没有实现任何同步接口,它仅仅是定义了若干同步状态的获取和释放方法来供自定义同步组件的使用,同步器既支持独占式获取同步状态,也可以支持共享式获取同步状态,这样就可以方便的实现不同类型的同步组件。 同步器是实现锁(也可以是任意同步组件)的关键,在锁的实现中聚合同步器,利用同步器实现锁的语义。可以这样理解二者的关系:锁是面向使用者,它定义了使用者与锁交互的接口,隐藏了实现细节;同步器是面向锁的实现者,它简化了锁的实现方式,屏蔽了同步状态的管理,线程的排队,等待和唤醒等底层操作。锁和同步器很好的隔离了使用者和实现者所需关注的领域。

    2019-12-12 22:10:56
    赞同 展开评论 打赏
  • 为之则易,不为则难

    AQS(AbstractQueuedSynchronizer)是实现依赖于先进先出 (FIFO) 等待队列的阻塞锁和相关同步器(信号量、事件,等等)提供一个框架,它是一个依靠单个原子 int 值来表示状态的大多数同步器的一个基础类

    2019-11-12 10:20:53
    赞同 展开评论 打赏
  • 队列同步器,构建锁或者其他同步组件的基础框架

    2019-11-11 14:59:08
    赞同 展开评论 打赏
滑动查看更多
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载