1. 首页
  2. 编程语言
  3. Java
  4. Java 通过AQS实现数据组织

Java 通过AQS实现数据组织

上传者: 2022-05-23 21:56:29上传 PDF文件 126.44 KB 热度 11次

引言从本篇文章开始,我们将介绍 Java AQS 的实现方式,本文先介绍 AQS 的内部数据是如何组织的,后面的文章中再分别介绍 AQS 的各个部门实现。从这个角度来看,AQS 这个基类设计的真的很不错,能够包容各种同步控制方案,并提供了必须的下层依赖:比如阻塞,队列等。内部数据AQS 顾名思义,就是通过队列来组织修改互斥资源的请求。当这个资源空闲时间,那么修改请求可以直接进行,而当这个资源处于锁定状态时,就需要等待,AQS 会将所有等待的请求维护在一个类似于 CLH 的队列中。在 AQS 中有两个指针一个指针指向了队列头,一个指向了队列尾。队列中的每个节点,都是一个 Node 实例,该实例的第一个关键字段是 waitState,它表述了当前节点所处的状态,通过 CAS 进行修改:

用户评论