0

私はゲームを書きましたが、しばらくの間デッドロックに陥りました。Google で問題を検索した後、ロック オーダー メソッドが機能しているように見えるので、問題がないことを確認するためにここにアクセスします。

A、B、C の 3 人のユーザーが相互に対話します。

アクションは攻撃、奪還、救出

例:AがBを攻撃、BがAから奪還、AがCからBを救出

各ユーザーには一意の ID がありました

ID desc または asc で並べ替えられたユーザー オブジェクトで同期を注文すると、2 人のユーザー間のやり取りが機能しているように見えます。しかし、レスキューアクションで3人のユーザーで動作しますか?

4

1 に答える 1

1

すべてのロックが同じ順序で取得されていれば、デッドロックを回避できます。したがって、「A が C から B をレスキュー」が A、B、C の順にロックを取得し、「B が A から C をレスキュー」A、B、C の順にロックを取得する限り、問題はありません。

于 2012-12-05T16:03:40.043 に答える