私は現在、オンライン ゲーム用の小さなサーバーを作成しています。接続とデータ転送を処理する 1 つの「サーバー」オブジェクトと、2 人のプレーヤー間で作成されたゲーム セッションごとに 1 つの「ゲーム」オブジェクトを作成します。
「Game」クラスは「Thread」を拡張し、その run() メソッドに無限ループを持ちます。
各「ゲーム」オブジェクトは、他のいくつかのオブジェクト (ボード上のピースなど) への参照を保持し、これらのオブジェクト自体は、定期的に相互に通信する必要があるため、対応する「ゲーム」オブジェクトへの参照を保持します。 .
さて、ゲームが終了し、「ゲーム」オブジェクトが不要になった場合、「ゲーム」オブジェクトが確実にガベージ コレクションされるようにするには、どのような手順を踏む必要がありますか?
私の考えは次のとおりです。
「サーバー」オブジェクト: 問題のゲーム オブジェクトへの参照を削除します。
問題のゲーム オブジェクトによって使用されるすべてのオブジェクトで、問題のゲーム オブジェクトへの参照を削除 (無効化?) します。
Game オブジェクトの run() メソッドを実行している無限ループを中断します。
これで十分ですか、それとも他に必要な手順がありますか、それともこれらの手順のいくつかは必要ありませんか?