重新整理操作系统概念系类——管程
前言
为什么产生管程这个东西呢?
以前我该系列中,提及到有信号量这个概念,但是呢,信号量有个问题那就是编写代码复杂容易出问题。
而且信号量写的不好,还可能出现死锁问题。
比如说p1先请求s1,然后请求s2;p2先请求s2然后请求s1。
然后p1请求到s1,p2请求到52,然后这两个就都无法执行了,这种问题还是很容易发生的。
那么有没有什么能解决这个问题呢?
这就是管程。
正文
管程的组成:
1.局部于管程的共享数据结构说明。
2.对该数据结构进行一组操作的一组过程。
3.对局部于管程的共享数据设置初始化的语句。
4.管程有一个名字。
管程的特征:
1.局部于管程的数据只能被局部于管程的过程访问。
2.一个进程只有通过调用管程内的过程还能进入管程访问共享数据。
3.每次仅允许一个进程在管程内进行某个内部过程。
管程对于生产消费问题
c# 管程机制
可以去看一下我的代码:
https://www.cnblogs.com/aoximin/p/13224393.html