http://www.lib.ntu.edu.tw/exam/graduate/99/99404.pdf
題目是 no writer needs to wait for more than 3 readers
我自己嘗試寫了一下,請問這樣對嗎(語法&邏輯)
我的想法是增加一個waitcnt變數,用來紀錄執行了幾個reader
waitcnt會在reader執行後+1
每當waitcnt=3就會把自己卡住wait(rsem)
然後解救writer
...略
reading is performed
wait(x)
readcnt = readcnt-1;
waitcnt = waitcnt+1;
if readcnt == 0
signal(wsem);
if waitcnt == 3
waitcnt = 0;
if writecnt > 0
wait(rsem); signal(wsem);
#1DEgKisj (Grad-ProbAsk)
推 killersky:我的想法是"當Wirter到達且開始等時,最多允許再給三個 01/23 06:43
→ killersky:reader進入" 01/23 06:45
→ killersky:用意是Reader有利的條件弱一點,Writer不會starvation. 01/23 06:46
→ killersky:(我一開始的Writer 拼錯了XD 見諒) 01/23 06:47
我絕得題目好像沒有要求這麼嚴謹,
他只要求每個writer不要等待超過3個reader就好
--
雲長曰 :“曹操望見煙,知有埋伏,如何肯來?”
孔明笑曰:“豈不聞兵法虛虛實實之論?操雖能用兵,只此可以瞞過他也。
他見煙起,將謂虛張聲勢,必然投這條路來。將軍休得容情。”
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.34.80.201
※ 編輯: bjk 來自: 114.34.80.201 (04/08 14:26)
※ 編輯: bjk 來自: 114.34.80.201 (04/08 14:29)
※ 編輯: bjk 來自: 114.34.80.201 (04/08 14:31)