作業系統多個生產者多個消費者問題

2021-10-07 04:38:04 字數 701 閱讀 3246

題目如下:

一家人吃水果問題是生產者消費者問題的一種變形。問題如下:

• 桌子上有乙隻盤子,每次只能放乙個水果;

• 爸爸專向裡面放蘋果,媽媽專放桔子;

• 兒子專吃蘋果,女兒專吃桔子;

• 僅當盤子空閒時,爸爸媽媽才可以向裡面放水果;

• 僅當盤子裡有自己需要的水果時,兒子女兒才可以從裡面取出乙隻水果。

試利用執行緒模擬這個問題,並進行正確的同步。

#include

#include

#include

#include

#include

// 緩衝區容量

#define n 1

// 緩衝區中產品個數

int num =0;

// 爸爸生產者執行緒

void

*dad()

}// 媽媽生產者執行緒

void

*mon()

}//兒子消費者執行緒

void

*son()

}//女兒消費者執行緒

void

*doughter()

}int

main()

執行結果:

多執行緒 多個生產者多個消費者問題

還是之前的問題 廚師負責做菜,服務員負責給客人上菜,廚師做好的菜放在工作台上,服務員從工作台上取菜品,但是這次的廚師和服務員都有多個.首先建立出多個廚師和多個服務員是很簡單的,為了方便,我們給執行緒重新命名一下,做乙個標記,在後面方便進行觀察.public class testcommunicate...

作業系統 生產者消費者題變形

目錄 題目描述 互斥 同步 變形 同步家裡有乙個盤子 爸爸給盤子裡面放蘋果,女兒吃蘋果 媽媽給盤子裡面放桔子,兒子吃桔子 爸爸媽媽兒子女兒互斥盤子 設互斥訊號量mx初 1 1盤子中沒有蘋果時 當且僅當爸爸放蘋果 女兒取蘋果 2盤子滿時 當且僅當女兒或者兒子取爸爸媽媽都可以用 empty初 0 3盤子...

作業系統,生產者 消費者問題詳解

生產者 消費者問題 分析問題,確定臨界區 設定互斥訊號量,初值為1 臨界區之前對訊號量執行p操作臨界區之後對訊號量執行v操作分析問題,找出 需要實現 一前一後 的同步關係 設定同步訊號量,初始值為0 在 前操作 之後執行v操作在 後操作 之前執行p操作分析問題,畫出前驅圖,把每一對前驅關係都看成乙個...