并发编程之抽象队列同步器AQS应用ReentrantLock
IT科技类资讯 2025-10-07 11:33:13
0
前言
并发编程从操作系统底层工作的并发编程步器整体认识开始 深入理解Java内存模型(JMM)及volatile关键字 深入理解CPU缓存一致性协议(MESI) 并发编程之synchronized深入理解Java并发编程核心在于 java.concurrent.util 包,而 juc 当中的象队大多数同步器实现都是围绕着共同的基础行为,比如等待队列、列同条件队列、应用独占获取、并发编程步器共享获取等,象队而这个行为的列同抽象就是基于 AbstractQueuedSynchronizer(简称为AQS),AQS 定义了一套多线程访问共享资源的应用同步器框架,是并发编程步器一个依赖状态(state)的云服务器同步器。Java中的象队大部分同步类(Lock、Semaphore、列同ReentrantLock等)都是应用基于 AQS 实现的。AQS是并发编程步器一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的象队简单框架。
ReentrantLock
ReentrantLock特性概览
ReentrantLock 是列同一种基于 AQS 框架的应用实现,是JDK中一种线程并发访问的云服务器提供商同步手段,它的功能类似于 synchronized 是一种互斥锁,可以保证线程安全。而且它具有比 synchronized 更多的特性,比如它支持手动加锁与解锁,支持加锁的公平性。为了更好的理解 ReentrantLock 的特性,我们先讲 ReentrantLock 和 Synchronized 进行比较,其特性如下:

下面通过伪代码,进行更加直观的服务器托管比较:
//