SAP システムのユーザー間でプレイする単純な Tic Tac Toe ゲームを作成したいと考えています。
プレイヤーをゲームに割り当てる SIGNUP メソッドを持つ CL_TTT_MANAGER クラスがあります。私のクラスは共有メモリ対応のクラスです。その目的は、SAP システムのすべてのユーザーがアクセスできる可能性があるためです。
サインアップ手順は、非常に単純なアルゴリズムを使用して行われます。
1:「WAITING_FOR_PLAYERS」フラグが存在し、ABAP_FALSE に設定されています。最初に。2:最初のプレーヤーが「SIGNUP」を呼び出すと、フラグは「ABAP_TRUE」に設定されます。3:2番目のプレイヤーが「SIGNUP」を呼び出すと、フラグが「ABAP_FALSE」に設定され、ゲームインスタンスが作成されます。
私の SIGNUP メソッドの問題は、状態に依存していることです。つまり、最初のプレーヤーの名前を覚えておく必要があり、これはプライベート属性を使用して実現されます。
同時実行の問題に取り組んだことがある人なら誰でも、データの競合に気付くでしょう。つまり、2 番目のプレーヤーがサインアップした直後に 3 番目のプレーヤーもサインアップすると、最初のプレーヤーの名前が最初のプレーヤーの名前に置き換えられる可能性があります。三番。
これらをabapで同期するにはどうすればよいですか? これにはどのようなメカニズムがありますか?ドキュメントでこのようなものに遭遇したことはありません(私は2か月しか勉強していません)。これを自分で実装する必要がありますか、それとも私を助ける何かがありますか?