推 kyodaisuki:這題很難 .. 程式碼一定不只5行 02/24 16:29
→ kyodaisuki:你大概要拚斷 first-count second-count來wait( delay) 02/24 16:30
→ kyodaisuki:你可以這樣想 如果一個process先進入的second的地方 02/24 16:31
→ kyodaisuki:讓之後的prcoess都以為在second delay有工作 02/24 16:31
→ kyodaisuki:所以 它們會瘋狂的增加signal(second-delay) 02/24 16:32
→ kyodaisuki:0.0.... 等等 我想一下 02/24 16:33
推 kyodaisuki:if(first-count >0 ) signal(first-delay); 02/24 16:40
→ kyodaisuki:else if(second-count > 0) signal(second-delay); 02/24 16:41
→ kyodaisuki:else siganl(mutex); 02/24 16:42
→ kyodaisuki:這三行就夠了 02/24 16:42
→ kyodaisuki:有問題再推文問我 你用上去 追蹤看看就知到了 02/24 16:42
→ dingfun:恩恩~樓上應該是對的!!謝謝^^ 02/24 19:54
→ dingfun:不過感覺上 是不是應該先檢查second-count讓卡在 02/24 20:07
→ dingfun:second-delay的process先過@@? 02/24 20:08
推 kyodaisuki:其實沒差 因為你讓第一個過 到了deconf-delay 02/24 20:14
→ kyodaisuki:等等= =. 好吧 先讓decond-count過吧 02/24 20:15
→ kyodaisuki:second-delay先判斷好. 可以減少判斷次數 02/24 20:16
→ kyodaisuki:其實是沒差的 因為到了第2個delay 在first-count = 0 02/24 20:17
→ kyodaisuki:他一樣會signal(second-delay) 02/24 20:17
→ kyodaisuki:先讓第2個過的效率 大概比第一個過的效率好 02/24 20:18
→ dingfun:恩恩 還是感謝 K大真是強大! 02/24 21:20