用pv操作實現 吃水果問題(C 語言)

2021-08-26 19:50:19 字數 1163 閱讀 8516

/**

功能:實現吃水果問題

**題目內容:桌子有乙隻盤子,只允許放乙個水果,父親專向盤子放蘋果,母親專向盤子放桔子

兒子專等吃盤子的桔子,女兒專等吃盤子的蘋果。只要盤子為空,父親或母親就可以向盤子放水果,

僅當盤子有自己需要的水果時,兒子和女兒可從盤子取出。請給出四個人之間的同步關係,並用

pv操作實現四個人的正確活動的問題。**

**題目分析:父親和女兒是相互制約的,父親程序執行完即往盤中放入蘋果後,女兒程序才能執行即吃蘋果,是同步關係;

母親和兒子是相互制約的,母親程序執行完即往盤中放入桔子,兒子程序才能執行即吃桔子,也是同步關係

而父親和母親這兩個程序不能同時進行,是互斥關係;**

**/#include#includeusing namespace std;

//宣告控制代碼

handle emptyplate;

handle orange;

handle fatherthread;

handle motherthread;

handle sonthread;

handle daughterthread;

//執行緒函式宣告

dword winapi father(lpvoid ipparameter);

dword winapi mother(lpvoid ipparameter);

dword winapi daughter(lpvoid ipparameter);

dword winapi son(lpvoid ipparameter);

int main()

//父親執行緒函式

dword winapi father(lpvoid ipparameter)

return 0;

} //母親執行緒函式

dword winapi mother(lpvoid ipparmeter)

return 0;

} //女兒執行緒函式

dword winapi daughter(lpvoid ipparameter)

return 0;

} //兒子執行緒函式

dword winapi son(lpvoid ipparameter)

return 0;

}

PV操作經典例題 吃水果

例1 桌上有乙個盤子,每次只能放乙個水果,媽媽向盤中放蘋果和橘子,兒子專等吃盤裡的橘子,女兒專等吃盤裡的蘋果。只要盤子空,媽媽可向盤中放水果,僅當盤中有自己需要的水果時,兒子或女兒可從中取出,請給出他們三人之間的同步關係,並用pv操作實現三人正確活動的程式。void mother void daug...

作業系統 吃水果放水果問題 PV操作

問題描述 桌子上有乙隻盤子,每次只能向其中放入乙個水果。爸爸專向盤子中放蘋果,媽媽專向盤子中放 橘子,兒子專等著吃盤子中的橘子,女兒專等著吃盤子中的蘋果。只有盤子空時,爸爸或媽媽才 可向盤子中放乙個水果。僅當盤子中有自己需要的水果時,兒子或女兒可以從盤子中取出水果。用pv操作實現上述過程。問題分析 ...

C 11 實現訊號量(吃水果問題)

自 c 11中有互斥和條件變數但是並沒有訊號量,但是利用互斥和條件變數很容易就能實現訊號量。訊號量是乙個整數 count,提供兩個原子 atom,不可分割 操作 p 操作和 v 操作,或是說 wait 和 signal 操作。吃水果問題 桌子有乙隻盤子,只允許放乙個水果,父親專向盤子放蘋果,母親專向...