1
0
mirror of https://github.com/Snailclimb/JavaGuide synced 2025-06-20 22:17:09 +08:00

Merge pull request #1703 from Vingkin/patch-1

Update reentrantlock.md
This commit is contained in:
Guide 2022-04-25 09:12:35 +08:00 committed by GitHub
commit 9a0326db01
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -11,7 +11,7 @@ tag:
## 前言 ## 前言
Java 中的大部分同步类(Lock、Semaphore、ReentrantLock 等)都是基于 AbstractQueuedSynchronizer简称为 AQS实现的。AQS 是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过 ReentrantLock 的基本特性和 ReentrantLock 与 AQS 的关联,来深入解读 AQS 相关独占锁的知识点,同时采取问答的模式来帮助大家理解 AQS。由于篇幅原因本篇文章主要阐述 AQS 中独占锁的逻辑和 Sync Queue不讲述包含共享锁和 Condition Queue 的部分(本篇文章核心为 AQS 原理剖析,只是简单介绍了 ReentrantLock感兴趣同学可以阅读一下 ReentrantLock 的源码)。 Java 中的大部分同步类Semaphore、ReentrantLock 等)都是基于 AbstractQueuedSynchronizer简称为 AQS实现的。AQS 是一种提供了原子式管理同步状态、阻塞和唤醒线程功能以及队列模型的简单框架。本文会从应用层逐渐深入到原理层,并通过 ReentrantLock 的基本特性和 ReentrantLock 与 AQS 的关联,来深入解读 AQS 相关独占锁的知识点,同时采取问答的模式来帮助大家理解 AQS。由于篇幅原因本篇文章主要阐述 AQS 中独占锁的逻辑和 Sync Queue不讲述包含共享锁和 Condition Queue 的部分(本篇文章核心为 AQS 原理剖析,只是简单介绍了 ReentrantLock感兴趣同学可以阅读一下 ReentrantLock 的源码)。
## 1 ReentrantLock ## 1 ReentrantLock
@ -991,4 +991,4 @@ public class LeeMain {
- Lea D. The java. util. concurrent synchronizer framework[J]. Science of Computer Programming, 2005, 58(3): 293-309. - Lea D. The java. util. concurrent synchronizer framework[J]. Science of Computer Programming, 2005, 58(3): 293-309.
- 《Java 并发编程实战》 - 《Java 并发编程实战》
- [不可不说的 Java“锁”事](https://tech.meituan.com/2018/11/15/java-lock.html) - [不可不说的 Java“锁”事](https://tech.meituan.com/2018/11/15/java-lock.html)