CS-Notes 学习笔记
Java 后端 · 操作系统

什么是管程?条件变量起什么作用?

先自己想一想,再看参考要点

参考要点

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

学习站:先用面试题自评定级,按水平和面试日期排出每天的计划,自评过的题按间隔复习。免费、无需注册,记录只保存在自己的浏览器中。