1.管程Java同步的设计思想
管程: 指的是管理共享变量以及对共享变量的操作过程,让他们支持并发.
互斥:同一时刻只允许一个线程访问共享资源:
同步:线程之间如何通信、协作。
MESA模型
在管程的发展史上,先后出现过三种不同的管程模型,分别是Hasen模型、Hoare模型和MESA模型。现在正在广泛使用的是MESA模型

管程中引入了条件变量的概念,而且每个条件变量都对应有一个等待队列。条件变量和等待队列的作用是解决线程之间的同步问题。
Java中针对管程有两种实现:
1.一种是基于object的Monitor机制,用于synchronized内置锁的实现
2.一种是抽象队列同步器AQS,用于JUC包下Lock锁机制的实现


本文介绍了Java并发编程中的管程设计思想和MESA模型,重点分析了AQS(AbstractQueuedSynchronizer)的工作原理,包括其核心结构、队列类型以及状态管理。同时,文章详细探讨了ReentrantLock的实现机制,特别是非公平锁的源码分析,强调了公平性和可重入性的实现细节。
最低0.47元/天 解锁文章
747

被折叠的 条评论
为什么被折叠?



