【问题标题】:Is this synchronized lock order work?这个同步的锁定顺序有效吗?
【发布时间】:2012-12-05 14:48:39
【问题描述】:

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

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

行动是攻击、夺回和救援

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

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

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

【问题讨论】:

    标签: java locking deadlock synchronized


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-13
      • 1970-01-01
      相关资源
      最近更新 更多