管程,
指的是管理共享变量以及对共享变量的操作过程
如何解决互斥
如何解决同步
为什么wait必须写到while循环中?
因为是MESA模型
MESA 管程里面,T2 通知完 T1 后,T2 还是会接着执行,T1 并不立即执行,仅仅是从条件变量的等待队列进到入口等待队列里面。这样做的好处是 notify() 不用放到代码的最后,T2 也没有多余的阻塞唤醒操作。但是也有个副作用,就是当 T1 再次执行的时候,可能曾经满足的条件,现在已经不满足了,所以需要以循环方式检验条件变量
提醒有点像异步,可能曾经满足的条件,现在已经不满足了,所以要不断检测,总觉得是设计不优雅导致的。
问题
condition是啥。。。