爸爸媽媽兒子女兒吃水果問題以及五個哲學家吃飯問題

2022-09-02 14:45:14 字數 2115 閱讀 1447

在pv操作中會有乙個經典的例子就是爸爸媽媽兒子女兒吃水果問題,爸爸媽媽向盤子裡放入水果,兒子女兒向盤子取水果。然而爸爸只向盤子放蘋果,媽媽只向盤子放橘子,女兒只能吃蘋果,兒子只能吃橘子。並且盤子裡只能裝乙個水果,這樣爸爸媽媽就要競爭盤子向裡面放入水果。而兒子女兒取走水果後必須通知爸爸媽媽向裡面放入水果。這就是乙個典型的pv操作中互斥與同步混合模型。**如下:

view code

1

class

program221

private

static

void

father()

22準備就緒

",thread.currentthread.name);

24s.waitone();

25 console.writeline("

放入乙個蘋果

", thread.currentthread.name);

26 thread.sleep(1000

);2728}

29private

static

void

mather()

30準備就緒

", thread.currentthread.name);

32s.waitone();

33 console.writeline("

放入乙個梨子

", thread.currentthread.name);

34 thread.sleep(1000

);35

pear.release();36}

37private

static

void

son()

38準備就緒

", thread.currentthread.name);

40 thread.sleep(1000

);41

pear.waitone();

42 console.writeline("

取出乙個梨子

", thread.currentthread.name);

43s.release();44}

45private

static

void

daugther()

46準備就緒

", thread.currentthread.name);

48 thread.sleep(1000

);49

50 console.writeline("

取出乙個蘋果

", thread.currentthread.name);

51s.release();52}

53 }

執行結果如下:

(由dijkstra首先提出並解決)5個哲學家圍繞一張圓桌而坐,桌子上放著5支筷子,每兩個哲學家之間放一支;哲學家的動作包括思考和進餐,進餐時需要同時拿起他左邊和

右邊的兩支筷子,思考時則同時將兩支筷子放回原處。試想一下,如果哲學家同時思考完問題一人拿一支筷子,每人都等待左邊或者右邊的人吃完放下筷子,者無人能進餐,只有餓死。那麼就必須對此進行pv控制。還有一種情況就是形成死鎖,每個哲學家從左邊開始取筷子,結果每人一人拿一支筷子互相等待,形成死鎖。見下圖

view code

1

class

program221

private

static

void

l1()

2233

private

static

void

l2()

3445

private

static

void

l3()

4657

private

static

void

l4()

5869

private

static

void

l5()

7081 }

執行結果如下:

對不起,爸爸媽媽

不知道什麼原因,也許是我太愛我的爸爸媽媽媽了,也許是我以前做了太多對不起他們的事,現在後悔了,我現在不願意傷他們的心,我想讓他們開心的度過自己的晚年,不用再為我操心.我小時候,不是個好兒子,長大了,想做個好兒子,但是又想去實現自己的夢想,所以離開了他們,不能做個好兒子陪在他們身邊.我其實很內疚了,本...

孩子 爸爸媽媽你們離婚吧

因為爸爸媽媽意見不合還有生活細節中經常究竟折騰,很少有時間坐下來溝通交流,更多的是爭吵謾罵,兩人在一起除了冷戰就是相互指責,就像當事人自己在說,如果不是為了孩子,兩人早已選擇離婚,為了給予孩子乙個完整的家,不希望孩子沒有爸爸媽媽,特別是看身邊的孩子還有單親家庭現狀讓自己不敢輕易嘗試,只是在委曲求全,...

孩子,請耐心的等爸爸媽媽來接

幼兒園的生活再繼續,每天五點半,孩子差不多都走完了,剩下兩三個孩子的父母晚些來接孩子,我們把這些孩子送到圖書館,等他們的爸爸媽媽來接他們。前天,也就是周一,剩下三個孩子,當我和另乙個老師準備把他們送到圖書館的時候,有乙個孩子溜下樓玩兒去了。我下去找他,在橡膠跑道找到他之後,和他好好說,去圖書館等媽媽...