写点什么

AQS

0 人感兴趣 · 46 次引用

  • 最新
  • 推荐

【JAVA】浅说 AQS

用户头像
sidiot
06-25

面试过 Java 工程师的小伙伴都知道,Java 中的 AQS 是面试高频题,面试官上来就直接了当地问,AQS 知道是什么吧,来讲讲它是怎么实现的,以及哪些地方用到了它。

https://static001.geekbang.org/infoq/51/517ef308de6697ec414f7ce1249b05d3.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

从 ReentrantLock 角度解析 AQS

基于JDK8,今天重点来聊下JUC并发包下的一个类,AbstractQueuedSynchronizer。首先,浅显的从名字上看,抽象的队列同步器;实际上,这名字也跟它的作用如出一辙。

阿里三面最后一问:解释一下 Java 并发 AQS 的独占锁模式

概述稍微对并发源码了解的朋友都知道,很多并发工具如ReentrantLock、CountdownLatch的实现都是依赖AQS, 全称AbstractQueuedSynchronizer。

https://static001.geekbang.org/infoq/1e/1eaac4fc1253e0162fab906275e0104e.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

AQS 条件队列机制源码分享

用户头像
new life
2022-09-11

在 synchronized 中一个线程因为某个条件不能满足时就可以在持有锁的情况下调用该锁对象的wait方法,之后该线程会释放锁并进入到与该锁对象关联的等待队列中等待;如果某个线程完成了该等待条件,那么在持有相同锁的情况下调用该锁的notify或者notify

https://static001.geekbang.org/infoq/5a/5ad7bb6389382d3e3f4c21637ee04f91.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

AQS 阻塞队列机制源码分享

用户头像
new life
2022-09-11

AbstractQueuedSynchronizer 是一个抽象类,以下我们会简称AQS,翻译成中文就是抽象队列同步器。他是是一个用来实现同步器,封装了各种底层的同步细节,我们想自定义自己的同步工具的时候,只需要定义这个类的子类并覆盖它提供的一些方法就好了。在R

https://static001.geekbang.org/infoq/78/787ee847b8d41bc4de099547dcef9e76.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

多线程与高并发—— 源码解析 AQS 原理

用户头像
王小凡
2022-07-28

AQS 是一个同步框架,我们了解到进程(线程同理,本文基于 JVM 讲解,故下文只称线程)同步的工具有很多:Mutex、Semaphore、Monitor。但是Mutex 和 Semaphore 作为低级通信存在不少缺点,Monitor 机制解决了上面部分缺憾,但是仍然存在问题,AQS 的出现很好

https://static001.geekbang.org/infoq/4b/4bed696ee7eee3b5a28f206e72a3da91.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

三千余字搞定 Java 并发框架 AQS,干货

那些“简单的”并发代码背后,隐藏着大量信息。。。

什么是 AQS 及源码分析

用户头像
Ayue、
2021-12-25

队列同步器 AbstractQueuedSynchronizer(以下简称AQS),是用来构建锁或者其他同步组件的基础框架,它使用了一个 int 成员变量表示同步状 态,通过内置的 FIFO 队列来完成资源获取线程的排队工作。并发包的大师(DougLea)期望它能够成为实现大部分同步需求

https://static001.geekbang.org/infoq/ec/ecc438c207da879511cc750011a7487e.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

☕【Java 技术指南】「并发原理专题」AQS 的技术体系之 CLH、MCS 锁的原理及实现

用户头像
洛神灬殇
2021-08-21

对称多处理器结构,它是相对非对称多处理技术而言的、应用十分广泛的并行技术。

源码级深挖 AQS 队列同步器

用户头像
码农参上
2021-08-13

在java中提供了两类锁的实现,一种是在jvm层级上实现的synchrinized隐式锁,另一类是jdk在代码层级实现的,juc包下的Lock显示锁,而提到Lock就不得不提一下它的核心队列同步器(AQS)了

通俗易懂的 ReentrantLock,不懂你来砍我

用户头像
程序猿阿星
2021-08-12

自己开的坑,跪着也要填完,欢迎来到Java并发编程系列第五篇ReentrantLock,文章风格依然是图文并茂,通俗易懂,本文带读者们深入理解ReentrantLock设计思想。

万字长文 | 16 张图解开 AbstractQueuedSynchronizer

用户头像
程序猿阿星
2021-08-04

Java并发编程系列第四篇AbstractQueuedSynchronizer,文章风格依然是图文并茂,通俗易懂,本文带读者们深入理解AbstractQueuedSynchronizer设计思想。

https://static001.geekbang.org/infoq/a2/a260e7abf737e4158384366b2b510401.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

我看 JAVA 之 并发编程【二】java.util.concurrent.locks

用户头像
awen
2021-07-29

关于说到 JAVA 的并发编程,就不得不说一说 java.util.concurrent.locks包,

https://static001.geekbang.org/infoq/46/460378837f6d5d4c70b36e4d84ca24f5.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

☕️【Java 技术之旅】【AbstractQueuedSynchronizer】教你自定义实现自己的同步器

用户头像
洛神灬殇
2021-07-28

之前的文章中会涉及到了相关AQS的原理和相关源码的分析,所谓实践是检验真理的唯一标准!接下来就让我们活化一下AQS技术,主要针对于自己动手实现一个AQS同步器。

https://static001.geekbang.org/infoq/18/182390276bc613028aa902a8c1de9bcc.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

🏆【算法数据结构专题】「线程锁算法专项」初探 CLH 队列锁机制原理分析

用户头像
洛神灬殇
2021-07-05

SMP(Symmetric Multi-Processor),即对称多处理器结构,指服务器中多个CPU对称工作,每个CPU访问内存地址所需时间相同。其主要特征是共享,包含对CPU,内存,I/O等进行共享。

https://static001.geekbang.org/infoq/47/47986e67470c972aeb26f8dad8c08f23.webp?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

AQS 知多少

用户头像
卢卡多多
2021-06-28

LockSupport:AQS的底层支持

https://static001.geekbang.org/infoq/ec/ecc438c207da879511cc750011a7487e.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

☕【Java 技术之旅】如何彻底认识 AQS 的原理 (上篇)

用户头像
洛神灬殇
2021-05-10

不知道大家喜不喜欢我新的写作风格呢,标题风格随便设计了一下,哈哈,希望给一些意见哦,

借鉴 AQS 的 CHL 思路解决消息多线程消费顺序 ACK 问题

我们的支付场景下,要求消费的业务消息绝不能丢失,且能充分利用高规格的服务器的性能,比如用线程池对业务消息进行快速处理。有同学可能没太理解这个问题有啥不好处理,让我一步步分析下。

https://static001.geekbang.org/infoq/39/39f85a546a1838bf67f7c9287eae084b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java- 技术专题 - 多线程顺序执行的 8 种方案实现

用户头像
洛神灬殇
2021-04-27

本文使用了7中方法实现在多线程中让线程按顺序运行的方法,涉及到多线程中许多常用的方法,不止为了知道如何让线程按顺序运行,更是让读者对多线程的使用有更深刻的了解。 使用的方法如下:

https://static001.geekbang.org/infoq/39/39f85a546a1838bf67f7c9287eae084b.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

Java- 技术专题 -CountDownLatch 的介绍和使用

用户头像
洛神灬殇
2021-04-18

CountDownLatch是在JDK1.5的时候才被引入,跟它一起被引入的工具类还有CyclicBarrier(回环栅栏)、Semaphore(信号量)、ConcurrentHashMap(并发Hash表)和BlockingQueue(阻塞队列),存在于java.util.concurrent包下(常说JUC)。接下来讲解一下这

https://static001.geekbang.org/infoq/03/03477d1f6b48b9d4ecde02d8f7c26adf.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

关于 ReentrantReadWriteLock,首个获取读锁的线程单独记录问题讨论(firstReader 和 firstReaderHoldCount)

用户头像
徐同学呀
2021-04-17

读了ReentrantReadWriteLock的源码,知道读写锁共用一个state,低16位表示写锁的状态和重入,高16位表示读锁的状态,右移16位表示持有读锁的线程数,那么该读锁是如何记录每个线程的重入呢?

https://static001.geekbang.org/infoq/af/af43175c57ef4c407326a3e7d12106e8.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

【Java 试题】AQS 解析

AQS是java并发包的一个重要概念。Java中可重入锁ReentrantLock就是基于AbstractQueuedSynchronizer(AQS)的。因此,理解AQS的实现原理,对Java锁理解非常重要。本篇将结合JDK1.8源码,对AQS进行分析。

https://static001.geekbang.org/infoq/01/01ad7d5e7488b140196eb2e5752b6a07.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

话说 AQS

用户头像
木子的昼夜
2021-03-09

什么是AQS (AbstractQueuedSynchronizer)翻译过来叫抽象同步队列,

https://static001.geekbang.org/infoq/dc/dc426ae873934e31497e321649af32be.jpeg?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

图解 CyclicBarrier 运动员接力赛

用户头像
叫练
2021-03-01

大家都知道运动员短跑接力赛,今天我们并不是讲接力赛,我们讲“接力协作赛”,需要我们重新定义下游戏规则:如下图所示

https://static001.geekbang.org/infoq/bf/bfb0f7ab30250d250a5105d1a3864d2e.png?x-oss-process=image%2Fresize%2Cw_416%2Ch_234

并发条件队列之 Condition 精讲

用户头像
伯阳
2021-01-27

一文带你详细了解condition在锁中的应用,带你详解条件队列和同步队列的关系和区别

AQS_AQS技术文章_InfoQ写作社区