当前位置: 首页 > wzjs >正文

网站主机选择与优化wordpress 收不到邮件

网站主机选择与优化,wordpress 收不到邮件,手机网站生成小程序,wordpress 上传引言:AQS在Java并发体系中的核心地位 AQS(AbstractQueuedSynchronizer)作为Java并发包的底层基石,是理解ReentrantLock、Semaphore等同步工具的关键。 在Java架构师面试中,AQS的原理与应用是高频考点,掌握其核心机制对理解JUC包和构建高并发系统至关重要。 本文将从原…

在这里插入图片描述

引言:AQS在Java并发体系中的核心地位

AQS(AbstractQueuedSynchronizer)作为Java并发包的底层基石,是理解ReentrantLock、Semaphore等同步工具的关键。

在Java架构师面试中,AQS的原理与应用是高频考点,掌握其核心机制对理解JUC包和构建高并发系统至关重要。

本文将从原理、应用、源码到Spring生态实践进行全面解析,帮助读者系统掌握这一核心技术。

一、AQS核心原理深度剖析

1.1 AQS的架构设计与核心组件

AQS是Java并发包中用于构建锁和同步器的抽象框架,其设计包含三大核心组件:

1.1.1 三大核心组件详解
组件名称技术实现核心作用
状态变量statevolatile int,通过CAS操作更新存储同步状态,不同场景含义不同(如锁重入次数、信号量许可数等)
CLH等待队列双向链表,由Node节点组成管理等待线程的FIFO顺序,实现线程阻塞与唤醒机制
模板方法抽象方法需子类实现定义同步逻辑接口(如tryAcquire、tryRelease等),实现模板方法模式
1.1.2 Node节点核心字段解析
static final class Node {// 节点状态:CANCELLED(1)、SIGNAL(-1)、CONDITION(-2)、PROPAGATE(-3)volatile int waitStatus;// 前驱节点引用volatile Node prev;// 后继节点引用volatile Node next;// 关联的线程volatile Thread thread;// 条件队列中的后继节点Node nextWaiter;
}
1.1.3 CLH队列结构示意图

在这里插入图片描述
CLH队列关键特性说明

  1. 双向链表结构
    • 每个节点包含 prevnext 指针
    • 头节点(Head)的prev为null
    • 尾节点(Tail)的next为null
  2. 节点内部结构
    static final class Node {volatile int waitStatus;  // 等待状态volatile Node prev;       // 前驱节点volatile Node next;       // 后继节点volatile Thread thread;   // 关联线程Node nextWaiter;          // 条件队列链接
    }
    
  3. 等待状态(waitStatus)
    • SIGNAL(-1):后继节点需要唤醒
    • CANCELLED(1):线程已取消
    • CONDITION(-2):在条件队列中
    • 0:初始状态
  4. 队列操作
    • 入队:尾插法(CAS更新Tail)
      // AQS中的入队代码
      private Node addWaiter(Node mode) {Node node = new Node(Thread.currentThread(), mode);Node pred = tail;if (pred != null) {node.prev = pred;if (compareAndSetTail(pred, node)) {pred.next = node;return node;}}enq(node); // CAS失败时自旋入队return node;
      }
      
    • 出队:头节点释放后唤醒后继
      // 唤醒后继节点
      private void unparkSuccessor(Node node) {int ws = node.waitStatus;if (ws < 0) compareAndSetWaitStatus(node, ws, 0);Node s = node.next;if (s == null || s.waitStatus > 0) {s = null;// 从尾向前查找有效节点for (Node t = tail; t != null && t != node; t = t.prev)if (t.waitStatus <= 0) s = t;}if (s != null) LockSupport.unpark(s.thread);
      }
      

1.2 AQS工作流程详解(独占模式)

1.2.1 核心执行流程

在这里插入图片描述

1.2.2 关键机制解析
  1. CAS无锁操作
    // AQS更新state的核心方法
    protected final boolean compareAndSetState(int expect, int update) {return unsafe.compareAndSwapInt(this, stateOffset, expect, update);
    }
    
    • 通过Unsafe类直接操作内存,确保原子性
    • stateOffset通过objectFieldOffset获取字段偏移量
  2. 线程阻塞与唤醒
    • 阻塞:LockSupport.park(this)
    • 唤醒:LockSupport.unpark(thread)
    • 基于Unsafe的park/unpark,比Object.wait/notify更高效
  3. 队列管理
    • 入队:CAS尾插法,保证线程安全
    • 出队:头节点释放后,将后继节点设为新头节点

二、AQS的同步模式与核心方法

2.1 独占模式(Exclusive Mode)

2.1.1 核心特性
  • 同一时刻仅允许一个线程获取资源
  • 典型实现:ReentrantLock、ReentrantReadWriteLock.WriteLock
  • 关键方法:
    • acquire(int arg):获取资源,失败则入队等待
    • release(int arg):释放资源,唤醒后继节点
2.1.2 状态流转图
tryAcquire成功
tryRelease成功
重入锁
未获取锁
获取锁

2.2 共享模式(Shared Mode)

2.2.1 核心特性
  • 允许多个线程同时获取资源
  • 典型实现:Semaphore、CountDownLatch、ReentrantReadWriteLock.ReadLock
  • 关键方法:
    • acquireShared(int arg):获取共享资源,失败入队
    • releaseShared(int arg):释放共享资源,可能唤醒后继
2.2.2 状态流转图

文章转载自:

http://EKsQkJs5.rrwft.cn
http://S5JUE4mt.rrwft.cn
http://FUZ4YVhD.rrwft.cn
http://ComdQ5kK.rrwft.cn
http://ySEzIli7.rrwft.cn
http://9p7yqRmK.rrwft.cn
http://a9TLe7ab.rrwft.cn
http://tOyPuovg.rrwft.cn
http://6fvcLDtB.rrwft.cn
http://hTqo43Tv.rrwft.cn
http://kcN1mO2p.rrwft.cn
http://GuW5bZsD.rrwft.cn
http://UvasO6sS.rrwft.cn
http://bRdHLQfL.rrwft.cn
http://oU3KTm8K.rrwft.cn
http://Ju7QpBfD.rrwft.cn
http://2zdiMqKz.rrwft.cn
http://8kdPg1pm.rrwft.cn
http://uhiZHn2d.rrwft.cn
http://T0GpmDaA.rrwft.cn
http://ZIXOfgBV.rrwft.cn
http://itvxxOUr.rrwft.cn
http://6h7xACpw.rrwft.cn
http://LTyCVYlK.rrwft.cn
http://RLcXU1ag.rrwft.cn
http://cXFkqoIh.rrwft.cn
http://TuVMjshT.rrwft.cn
http://XDf2p1gm.rrwft.cn
http://b3rgVGet.rrwft.cn
http://3261LnZc.rrwft.cn
http://www.dtcms.com/wzjs/670907.html

相关文章:

  • 织梦网站名称标签做网站能用ai好还是ps
  • 自己做网站必须要学哪些重庆市渝快办官网
  • 南通公司网站建设网页设计参考板式
  • 无线网站制作校园网站建设与应用
  • 电子商务网站建设与维护李建忠招商网官网
  • 银饰品网站建设规划策划书物联网开发软件有哪些
  • 青岛网站建设企业建站重庆江北营销型网站建设公司推荐
  • 公司注册网站查询深圳ppt设计制作公司
  • 学做婴儿衣服网站天津在线制作网站
  • 网站关键词找不到建筑信息平台app
  • 诏安县城乡建设局网站如何做好百度推广
  • 旅游网站制作建设青海省建设厅官方网站
  • 做网站联盟要多少钱营销型网站怎么做
  • 南京网站制作案例商城小程序费用标准
  • 乌兰察布市建设局网站WordPress添加ftp
  • t恤定制网站哪个好哪个网站可以做封面
  • 微网站是免费的吗非微信官方网页自己做的网站
  • 做好网站建设静态化广东东莞天气预报15天
  • 纺织品做外贸一般在哪个网站上一个公司只能备案一个网站吗
  • 门户网站怎么开发郑州网站建设郑州网站建设
  • 网站做快捷方式青岛做网站企业
  • 门户首页网站建设方案网站建站金融模板
  • 做网站线项目从立项到结束的流程图
  • 县市区没有建设信用网站和平台大数据营销的优缺点
  • 做心悦腾龙光环的网站网络推广策划案范文5篇
  • 珠宝类企业网站(手机端)北仑网站网页建设
  • 网站怎么做动态图片电商类网站有几个主流程
  • 安徽省建设厅八大员报名网站网站建设买服务器还是数据库
  • 济南网站建设网站制作闵行区天气
  • 哪个网站可以做微商网站页面分析作业