看板 Grad-ProbAsk 關於我們 聯絡資訊
※ 引述《lai5566 (5566得第一)》之銘言: : flag[i]=Ture;----1 : turn=j;-----2 : while(flag[j]&&turn==j); : {critical section} : flag[i]=false; : {remainder section} : 上述的1跟2互換後,會無法互斥,請問怎樣的流程跑法,才會出現無法互斥!! i j __________________________________________ t1:turn=j; t2:turn=i t3:flag[j]=true; t4:while(turn==i&&flag[i];//flag[i]非true //則j可進入C.S t5:while(turn==j&&flag[j]); //此時turn==i,i可離開while loop //i可進入C.S 此情況下i j皆在C.S裡 違反mutual exclusion -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 116.59.240.63
lai5566:謝謝你! 05/31 09:37