管程

1.为什么要引入管程

解决信号量机制编程麻烦、易出错的问题

2.组成

1.共享数据结构
2.对数据结构初始化的语句
3.一组用来访问数据结构的过程(函数)

3.基本特征

1.各外部进程/线程只能通过管程提供的特定“入口”才能访问共享数据
2.每次仅允许一个进程在管程内执行某个内部过程

4.补充

1.各进程必须互斥访问管程的特性是由编译器实现的
2.可在管程中设置条件变量及等待/唤醒操作以解决同步问题