我目前正在为在线游戏编写一个小型服务器。它创建一个处理连接和数据传输的“服务器”对象,以及每个在两个玩家之间创建的游戏会话的一个“游戏”对象。
“Game”类扩展了“Thread”,在它的 run() 方法中有一个无限循环。
每个“游戏”对象都包含对其他几个对象(可以说是棋盘上的棋子)的引用,这些对象本身也包含对相应“游戏”对象的引用,因为它们需要定期相互通信.
现在,当游戏结束并且不再需要“游戏”对象时 - 我必须采取哪些步骤来确保“游戏”对象被垃圾收集?
我的想法是:
在“服务器”对象中:删除对相关游戏对象的引用。
在相关 Game 对象使用的每个对象中:删除(无效?)对相关 Game 对象的引用。
打破运行 Game 对象的 run() 方法的无限循环。
这是否足够,或者是否有其他步骤是必需的,或者其中一些步骤不是必需的?