作者: aa06697 (todo se andarà) 2016-12-18 15:01:00
这个code是hoare monitor: process在signal后会让被救的process先进来然后自己进去一个特别的queue(优先权比condition readyqueue还高的queue)next_count用来记录有多少个“救命恩人” 因为在processwait的时候 代表cpu要给其他人 而此时若有救命恩人要优先救他 没有才让其他在等待的process进入monitor所以lineA lineB 就跟最左边那格的code一样然后wait的process会卡在wait(x_sem) lineC就是signal(x_sem) 要救在wait的process 然后wait(next) 就是让救命恩人进去特别queue的用途补充一下 semaphore的wait跟monitor的wait意义不太一样喔一个是抢执行权 一个是强迫去condition variable的queue休息