用户应该调用Player.close()
来释放由本机代码管理的一些关键资源,并杀死为播放器对象创建的几个内部java线程。但是,用户无法调用它,导致一些资源泄漏。添加Finalize方法将不起作用,因为不会调用finalize,因为内部线程尚未被杀死...
我们应该如何处理这种情况?
编辑:
我将看看幽灵参考。此外,我不应该终止那些聚合线程,以便玩家对象有资格获得gc吗?
答案 0 :(得分:2)
使内部线程仅保留对这些内容的弱引用。
也许考虑学习虚拟参考。
答案 1 :(得分:2)
我仍然认为finalize
是唯一可行的方法,但你必须使用一些精心设置的弱引用来给GC一个机会。