什么是管程?条件变量起什么作用?
先自己想一想,再看参考要点
参考要点
- 用信号量实现生产者消费者问题时,客户端代码要做很多控制,容易出错,管程把这些控制代码独立出来,只提供 insert()、remove() 这样的方法给客户端调用
- 管程的一个重要特性是同一时刻只能有一个进程使用管程
- 进程无法继续执行时不能一直占用管程,否则其它进程永远用不了,所以管程引入条件变量和 wait()、signal() 操作:对条件变量执行 wait() 使调用进程阻塞,并把管程让给其它进程,signal() 唤醒被阻塞的进程