在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 }
對不起,爸爸媽媽
不知道什麼原因,也許是我太愛我的爸爸媽媽媽了,也許是我以前做了太多對不起他們的事,現在後悔了,我現在不願意傷他們的心,我想讓他們開心的度過自己的晚年,不用再為我操心.我小時候,不是個好兒子,長大了,想做個好兒子,但是又想去實現自己的夢想,所以離開了他們,不能做個好兒子陪在他們身邊.我其實很內疚了,本...
孩子 爸爸媽媽你們離婚吧
因為爸爸媽媽意見不合還有生活細節中經常究竟折騰,很少有時間坐下來溝通交流,更多的是爭吵謾罵,兩人在一起除了冷戰就是相互指責,就像當事人自己在說,如果不是為了孩子,兩人早已選擇離婚,為了給予孩子乙個完整的家,不希望孩子沒有爸爸媽媽,特別是看身邊的孩子還有單親家庭現狀讓自己不敢輕易嘗試,只是在委曲求全,...
孩子,請耐心的等爸爸媽媽來接
幼兒園的生活再繼續,每天五點半,孩子差不多都走完了,剩下兩三個孩子的父母晚些來接孩子,我們把這些孩子送到圖書館,等他們的爸爸媽媽來接他們。前天,也就是周一,剩下三個孩子,當我和另乙個老師準備把他們送到圖書館的時候,有乙個孩子溜下樓玩兒去了。我下去找他,在橡膠跑道找到他之後,和他好好說,去圖書館等媽媽...