嗜睡的理髮師 程序同步問題

2021-09-24 21:53:49 字數 493 閱讀 3035

有乙個理髮師,一把理髮椅和 n 把供等候理髮的顧客坐的椅子。

如果沒有顧客,則理髮師便在理髮師椅子上睡覺;

當乙個顧客到來時,必須喚醒理髮師進行理髮;

如果理髮師正在理髮時又有顧客來到,則如果有空椅子可坐,他就坐下來等,如果沒有空椅子,他就離開。

為理髮師和顧客各編一段程式(偽**)描述他們的行為,要求不能帶有競爭條件。

int wait =0;

//顧客等待的數量

semaphore mutex =1;

//互斥訪問 wait

semaphore barber =0;

//理髮師訊號量

semaphore customer =0;

//顧客的訊號量

//理髮師

void

barber()

}//顧客

void customer (

)else

}}

作業系統程序同步之睡覺的理髮師問題

問題描述 理髮店理有一位理髮師 一把理髮椅和n把供等候理髮的顧客坐的椅子,要求 如果沒有顧客,理髮師便在理髮椅上睡覺 乙個顧客到來時,它必須叫醒理髮師 如果理髮師正在理髮時又有顧客來到,則如果有空椅子可坐,就坐下來等待,否則就離開問題分析 理髮師和顧客是同步關係,理髮師等待顧客來,然後為顧客服務,顧...

睡眠理髮師問題

一 問題描述 經典理髮師問題 假設後街有家理髮店,店裡有乙個理髮師 一把理髮椅和n把等候理髮的顧客椅子。1 如果沒有顧客則理髮師便在理髮椅上看報紙 2 當有乙個顧客到達時,首先檢視理髮師在幹什麼,如果在看報紙則告訴理髮師理髮,然後坐到理髮椅上開始理髮 如果理髮師正在理髮,則檢視是否有空的椅子可坐,如...

c 實現理髮師問題。。

include include include include include define max count 10 最多理髮人數 define chairs 4 店中椅子的總數目 using namespace std intwaiting 0 等待理髮的顧客人數 char close door...