[理工] 101台大計系

作者: kaidi620 (萬能屎哥)   2019-01-21 16:41:15
小弟想請教幾個問題
https://imgur.com/VOFSNZi
(A) 不懂為什麼B會造成死結
我的理解:
設有P1 P2 P3 =>P1先wait(acct1) 其他P2 P3被鎖住
=>P1執行完amount[acct1]和amount[acct2]
=>解開acct2 但P2 P3還是被鎖住
=>解開acct1 P2 P3一起進入使用變數
=>race condition
是這樣嗎 但它卻是說會造成deadlock 請問大大可以解釋一下嗎
然後這個程式碼 也會造成 race condition嗎?
(B)也可以幫我解釋一下嗎 附上解答
https://imgur.com/HdX1Zw4
作者: z3588191   2019-01-21 17:18:00
解答上的例子是說P1持A P2持B 互相等待=>deadlock一次只request一個就可以y拿掉hold-and-wait
作者: kaidi620 (萬能屎哥)   2019-01-21 18:11:00
這個是板上大神的答案 其實我也不知道對不對 因為前面幾也有些沒正確 我想問一下 那我的邏輯有問題嗎這樣是否會造成 race condition呢
作者: z3588191   2019-01-21 18:18:00
一般來說v()應該是atomic所以你的例子的P2P3不會同時進我是沒想到有race condition的例子
作者: kaidi620 (萬能屎哥)   2019-01-21 19:53:00
抱歉 不太懂 atonic是什麼意思 請大神可以解釋一下嗎
作者: A4P8T6X9 (殘廢的名偵探)   2019-01-22 08:07:00
atomic 就是該操作做完前不會換人做。
作者: kaidi620 (萬能屎哥)   2019-01-22 13:52:00
謝謝兩位大神 那我懂了

Links booklink

Contact Us: admin [ a t ] ucptt.com