Young87

当前位置:首页 >个人收藏

【高并发专题】-JUC-AQS及拓展组件详解

本篇主要介绍AQS原理及其构建的各种同步装置和锁.

AQS是类AbstractQueuedSynchronizer的缩写,位于java.util.concurrent包下,可以用来构建锁,各种同步装置.其底层的数据结构如下图:

是基于链表实现的FIFO队列,队列中维护了等待线程的各种信息.

AQS内部使用int类型的state来表示状态,state=0表示还没有线程获取锁,1表示已有线程获取到锁,>1表示重入锁的数量.

AQS是基于模板方法模式设计的,使用者需要继承AQS并覆写其中的部分方法,子类通过父类提供的acquire和release方法来修改队列中的节点状态.

AQS可以同时实现排它锁和共享锁(独占,共享)

AQS其内部维护了一个CLH队列(

除特别声明,本站所有文章均为原创,如需转载请以超级链接形式注明出处:SmartCat's Blog

上一篇: 好程序员HTML5大前端分享常用开发工具大集合

下一篇: 支付宝技术风险负责人陈亮:把事情做到极致,技术的差异性才会体现出来

精华推荐