0

我试图写一个使用两个理发师和三种类型的客户谁不是仅仅等待理发师1理发师2熟睡的理发师问题监测解决方案,也可以不关心哪个理发师削减他们的头发。指导睡觉理发监测解决方案

我希望为指导,在这个问题上 -

我的想法至今都该算法将利用等候的顾客一个列表,并可以使用程序,如

try_to_get_haircut()

if_not_first()

wake_up_barber()

wait_for_haircut()

回答

0

下面是一个理发师的解决方案,我希望它会指导你。

monitor sleeping_barber{ 
condition wait_for_cust, wait_for_barber ; 
int wait; 
entry barber{ 
    if (wait == 0) then cwait(wait_for_cust); 
    wait = wait - 1; 
    csignal(wait_for_barber); } 

entry cut_customer_hair(){ 
if(wait < seat_num) 
{ 
    wait = wait + 1; 
    csignal(wait_for_cust); 
    cwait(wait_for_barber); 
    do_haircut(); 
} 
} 
{ wait = 0;}} 
相关问题