作者kaidi620 (万能史哥)
看板Grad-ProbAsk
标题[理工] 101台大计系
时间Mon Jan 21 16:41:15 2019
小弟想请教几个问题
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
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.13.17.107
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Grad-ProbAsk/M.1548060077.A.D6A.html
1F:→ z3588191: 解答上的例子是说P1持A P2持B 互相等待=>deadlock 01/21 17:18
2F:→ z3588191: 一次只request一个就可以y拿掉hold-and-wait 01/21 17:19
3F:→ kaidi620: 这个是板上大神的答案 其实我也不知道对不对 因为前面几 01/21 18:11
4F:→ kaidi620: 也有些没正确 我想问一下 那我的逻辑有问题吗 01/21 18:12
5F:→ kaidi620: 这样是否会造成 race condition呢 01/21 18:12
6F:→ z3588191: 一般来说v()应该是atomic所以你的例子的P2P3不会同时进 01/21 18:18
7F:→ z3588191: 我是没想到有race condition的例子 01/21 18:19
8F:→ kaidi620: 抱歉 不太懂 atonic是什麽意思 请大神可以解释一下吗 01/21 19:53
9F:→ A4P8T6X9: atomic 就是该操作做完前不会换人做。 01/22 08:07
10F:→ kaidi620: 谢谢两位大神 那我懂了 01/22 13:52