私は、大学の研究室の 2 つのサーバー クライアント間でプレイされる単純なじゃんけんゲームを構築してきました。2 つのクライアントがサインオンしたときにゲームを開始する非常に単純なサーバーがあります。それはこのように動作します:
サーバーはゲーム オブジェクトを作成し、プレイヤー クライアントがゲームを要求するのを待ちます。
2 人のプレイヤーがゲームをリクエストすると、サーバーはプレイヤー 1 オブジェクトとプレイヤー 2 オブジェクトを作成し、ゲーム オブジェクトをそれぞれのコンストラクターに渡します。
プレイヤーはプレイヤー オブジェクトのメソッドを呼び出し、それがゲーム オブジェクトのメソッドを呼び出します。ゲーム オブジェクトには同期メソッドが含まれています。
各プレイヤーは、ゲーム オブジェクトに格納されている動きを行い、ゲーム オブジェクトは勝者を計算します。
プレーヤー オブジェクトは、ゲーム オブジェクトで同じメソッドを呼び出します。これはすべて正常に機能します。しかし、私の友人は、どのメソッドでも wait() または notify() を呼び出さないという事実に戸惑いました。彼はすでに自分の研究室を発表し、合格しています。彼は同期メソッド内の wait() と notify() について尋ねましたが、彼女の応答はあいまいで、まだ確信が持てないと言いましたが、念のためにそれらを入れておく必要があります. それで、取引は何ですか?? 同期メソッドで wait() と notify() が必要ですか?
また、Java 仮想マシン間で同期が機能しないと読みましたが、これは本当ですか? もしそうなら、これは私のゲームにどのように影響しますか、同期は何かをしていますか??
どうもありがとう。