此同步锁定顺序是否有效?

时间:2012-12-05 14:48:40

标签: java locking deadlock synchronized

我写了一个游戏并且它有一段时间陷入僵局,搜索谷歌之后关于问题似乎锁定顺序方法可能正常工作所以我去这里确保它没有问题。

最多有三个用户互相交流:A,B和C.

行动是攻击,重新夺回和救援

示例:攻击B,B从A重新夺回,A救援B从C

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

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

1 个答案:

答案 0 :(得分:1)

如果以相同的顺序获取所有锁,您将安全无死锁。因此,只要“C中的救援B”按顺序获得锁定A然后B然后是C,并且“B救援C来自A”获得锁定的顺序A然后B然后是C,你应该没问题。