为什么以不同顺序解锁两个锁定的银行帐户会导致死锁?

时间:2018-09-13 04:16:51

标签: multithreading thread-safety mutex deadlock

https://stackoverflow.com/a/51890291/462608

  

如果我在不锁定银行帐户的情况下对其进行修改,则其他人可能会尝试同时对其进行修改。这是一场比赛,其结果将是不确定的行为(通常是损失或神奇创造的金钱)。

     

在转帐时,我正在修改2个银行帐户。因此它们都需要被锁定。

     

问题是,当锁定多件物品时,每个储物柜必须以相同的顺序锁定和解锁,否则会出现死锁。

示例:从帐户A取款并存入帐户B。

所以,我先锁定A,然后锁定B。然后,如果先解锁B,然后再锁定A,为什么会导致死锁?

请解释。

0 个答案:

没有答案