0

用户应该调用Player.close()以释放由本机代码管理的一些关键资源,并杀死为播放器对象创建的几个内部 java 线程。但是,用户调用它失败,导致一些资源泄漏。添加一个 Finalize 方法将不起作用,因为 finalize 不会被调用,因为内部线程还没有被杀死......

我们应该如何处理这种情况?

编辑:

我将研究幻影参考。此外,我不应该终止那些聚合线程以便玩家对象有资格获得 gc 吗?

4

2 回答 2

2

使内部线程只持有对这些东西的弱引用。

也许考虑学习幻影参考。

于 2011-06-01T12:41:39.300 回答
2

我仍然认为这finalize是唯一的方法,但你必须使用一些精心放置的弱引用来让 GC 有机会参与进来。

于 2011-06-01T12:42:25.250 回答