0

我写了一个游戏,它有时会陷入僵局,在谷歌搜索问题后,似乎锁定顺序方法可能有效,所以我去这里确保它不会有问题。

最多有三个用户相互交互:A、B 和 C。

行动是攻击、夺回和救援

示例:A攻击B,B从A处夺回,A从C处救出B

每个用户都有一个唯一的 id

如果我在按其 id desc 或 asc 排序的用户对象上订购同步,则两个用户之间的交互似乎有效。但它会在救援行动中与三个用户一起使用吗?

4

1 回答 1

1

如果所有锁都以相同的顺序获取,您将不会出现死锁。所以只要“A从C救B”按A、B、C的顺序获得锁,“B从A救C”按A、B、C的顺序获得锁,应该没问题。

于 2012-12-05T16:03:40.043 回答