管程

为什么引入管程

在之前用信号量实现进程同步,互斥时,我们知道很容易因为异步性导致出现死锁,编程困难,易出错,能不能设计一种机制让程序员不需要再关注复杂的PV操作,让写代码更轻松呢,这个时候就在Pascal语言里首次引入了”管程”的成分,一种高级同步机制

管程的定义和基本特征

管程是一种特殊的软件模块,有下面这些部分组成

1.局部于管程的共享数据结构说明

2.对该数据结构进行操作的一组过程(相当于函数)

3.对局部于管程的共享数据设置初始值的语句

4.管程有一个名字

管程的基本特征:

1.局部于管程的数据只能被局限于管程的过程所访问

2.一个进程只有通过管程内的过程才能进入管程访问共享数据

3.每次允许一个进程子管程内执行某个内部过程

综上,我认为可以把管程理解为面向对象中的封装,比如说类

用管程解决生产者消费者问题

比如

-------------本文结束感谢您的阅读-------------