管程
指的是管理共享变量以及对共享变量的操作过程,让他们支持并发
管程中引入了条件变量的概念,每个条件变量都对应有一个等待队列。条件变量和等待队列的作用是解决线程之间的同步问题
Java中针对管程有两种实现:
- 基于Object的Monitor机制,用于synchronized内置锁的实现
- 抽象队列同步器AQS,用于JUC包下Lock锁机制的实现
MESA模型
![在这里插入图片描述](https://img-blog.csdnimg.cn/eeb4fc8a0f674cb785ef12bdb3e46dfd.jpeg)
AQS原理
java.util.concurrent包中的大多数同步器实现共性:
这些行为的抽象就是基于AQS实现的,AQS是一个抽象同步框架,可以用来实现依赖状态的同步器。