Java并发框架JUC中的AQS原理是什么?

2026-05-23 20:390阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计3808个文字,预计阅读时间需要16分钟。

Java并发框架JUC中的AQS原理是什么?

为什么需要AQS锁和协作类?共同点如下:门、像ReentrantLock和Semaphore有相似之处,实际上,不仅是ReentrantLock和Semaphore,包括CountDownLatch、ReentrantReadWriteLock等都具有类似的特性。

为什么需要AQS

  • 锁和协作类有共同点:闸门
    • 像ReentrantLock和Semaphore有一些共同点,并且很相似
    • 事实上,不仅仅是ReentrantLock和Semaphore,包括CountDownLatch、ReentrantReadWriteLock都有这样类似的“协作”(或者叫同步)功能,其实它们底层都使用了同一个共同的基类——AQS
  • 像上面提到的那些协作类,它们有很多工作都是类似的,所以如果能提取出一个工具类,那么就可以直接使用,对于ReentrantLock和Semaphore而言就可以屏蔽很多细节,只需要关注它们自己的“业务逻辑”就可以了

Semaphore和AQS的关系

  • Semaphore内部有一个Sync类,Sync继承了AQS
  • CountDownLatch也是一样的

AQS的重要性和地位

  • AbstractQueuedSynchronizer是大名鼎鼎的Doug Lea写的,从JDK1.5加入的一个基于FIFO等待队列实现的一个用于实现同步器的基础框架,使用IDEA查看AQS的实现类,可以发现实现类如下:

AQS介绍

AQS:AbstractQuenedSynchronizer抽象的队列式同步器。

阅读全文

本文共计3808个文字,预计阅读时间需要16分钟。

Java并发框架JUC中的AQS原理是什么?

为什么需要AQS锁和协作类?共同点如下:门、像ReentrantLock和Semaphore有相似之处,实际上,不仅是ReentrantLock和Semaphore,包括CountDownLatch、ReentrantReadWriteLock等都具有类似的特性。

为什么需要AQS

  • 锁和协作类有共同点:闸门
    • 像ReentrantLock和Semaphore有一些共同点,并且很相似
    • 事实上,不仅仅是ReentrantLock和Semaphore,包括CountDownLatch、ReentrantReadWriteLock都有这样类似的“协作”(或者叫同步)功能,其实它们底层都使用了同一个共同的基类——AQS
  • 像上面提到的那些协作类,它们有很多工作都是类似的,所以如果能提取出一个工具类,那么就可以直接使用,对于ReentrantLock和Semaphore而言就可以屏蔽很多细节,只需要关注它们自己的“业务逻辑”就可以了

Semaphore和AQS的关系

  • Semaphore内部有一个Sync类,Sync继承了AQS
  • CountDownLatch也是一样的

AQS的重要性和地位

  • AbstractQueuedSynchronizer是大名鼎鼎的Doug Lea写的,从JDK1.5加入的一个基于FIFO等待队列实现的一个用于实现同步器的基础框架,使用IDEA查看AQS的实现类,可以发现实现类如下:

AQS介绍

AQS:AbstractQuenedSynchronizer抽象的队列式同步器。

阅读全文