/**
功能:實現吃水果問題
**題目內容:桌子有乙隻盤子,只允許放乙個水果,父親專向盤子放蘋果,母親專向盤子放桔子
兒子專等吃盤子的桔子,女兒專等吃盤子的蘋果。只要盤子為空,父親或母親就可以向盤子放水果,
僅當盤子有自己需要的水果時,兒子和女兒可從盤子取出。請給出四個人之間的同步關係,並用
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 操作。吃水果問題 桌子有乙隻盤子,只允許放乙個水果,父親專向盤子放蘋果,母親專向...