正在加载图片...
管程的奥现:汉森方法 ●开放原语 release:如果除了发出这条原语 的进程外,不再有调用了管程中过程但又 不处于等待状态的进程那么就释放一个 等待者或开放管程 procedure release var IM interf) beg in M count2: =M. count2-1 if IM count2=0 and M count1>0 then beg in IM. count 1 IM count1 -1 IM. count2 IM count2 1 R(IM intem) end en d管程的实现:汉森方法 ⚫ 开放原语release:如果除了发出这条原语 的进程外,不再有调用了管程中过程但又 不处于等待状态的进程,那么就释放一个 等待者或开放管程 procedure release(var IM interf); begin IM.count2 := IM.count2 - 1; if IM.count2 = 0 and IM.count1 > 0 then begin IM.count1 := IM.count1 - 1; IM.count2 := IM.count2 + 1; R(IM.intsem); end; end;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有