问题 问答题

理发店理有一位理发师、一把理发椅和n把供等候理发的顾客坐的椅子。如果没有顾客,理发师便在理发椅上睡觉,一个顾客到来时,顾客必须叫醒理发师,如果理发师正在理发时又有顾客来到,则如果有空椅子可坐,就坐下来等待,否则就离开。

答案

参考答案:1)控制变量waiting用来记录等候理发的顾客数,初值为0,当进来一个顾客时,waiting加1,当一个顾客理发时,waiting减1;
2)信号量customers用来记录等候理发的顾客数,并用做阻塞理发师进程,初值为0;
3)信号量barbers用来记录正在等候顾客的理发师数,并用做阻塞顾客进程,初值为0;
4)信号量mutex用于互斥,初值为1。


判断题
单项选择题