桌上有一空盤,最多允許存放相同的兩隻水果

2021-10-05 12:38:35 字數 713 閱讀 3529

題目:桌上有一空盤,最多允許存放相同的兩隻水果。爸爸每次可向盤中放乙個蘋果或放乙個桔子,兒子專等吃盤中的桔子,女兒專等吃蘋果。

試用p、v操作實現爸爸、兒子、女兒三個併發程序的同步。

重點分析爸爸的程序:

最多只能放兩個水果

放蘋果與放桔子互斥,但是多個放蘋果操作之間不互斥

同理放桔子與放蘋果互斥,多個放桔子操作之間不互斥

以下為我基於上面邏輯的偽**,還未考慮周全是否會有死鎖情況。 0

;//女兒吃蘋果訊號

orange=0;

//兒子吃桔子訊號

fruit=2;

//盤子空訊號為2(限定最多放兩個水果)

//以下為放水果時,放蘋果和放桔子互斥訊號量 1;

orangemutex=1;

0;//正在放的蘋果數量

int orangecount=0;

//正在放的桔子數量

void

father()

if(想放桔子)

}while

(true)

}void

son(

)while

(true);}

void

daugther()

while

(true);}

void

main()

while

(true)

}

數字水印學習系統之一 空域操作

登記號 分類號 軟體全稱 軟體簡稱 版本號 著作權人 國籍 首次發表日期 登記批准日期 2009sr038176 68000 8400 數字水印學習系統 water v 1.0 中國 2009 09 09 空域操作主要在空域範圍內針對數字影象進行有關操作,具體操作內容及方法如下 分層顯示,顯示數字影...

普及一下酒桌上的規矩

昨晚和一些朋友們喝酒,行酒之間頗有感慨。敬酒和勸酒是酒桌上常見的事情,任何事情都有它的規律在裡面。從生活瑣事到企業管理都一樣,當然也包括喝酒了。我喝酒的歷史有很長了,大約有二十多年的酒齡。這裡首先倚老賣老一番,給不喝酒的朋友普及一下酒桌上的規矩,同時和喝酒的朋友交流一下心得體會。酒桌上不碰杯是不正常...

普及一下酒桌上的規矩

昨晚和一些朋友們喝酒,行酒之間頗有感慨。敬酒和勸酒是酒桌上常見的事情,任何事情都有它的規律在裡面。從生活瑣事到企業管理都一樣,當然也包括喝酒了。我喝酒的歷史有很長了,大約有二十多年的酒齡。這裡首先倚老賣老一番,給不喝酒的朋友普及一下酒桌上的規矩,同時和喝酒的朋友交流一下心得體會。酒桌上不碰杯是不正常...