sin*_*inθ 3 java garbage-collection
如果一个对象正在等待被垃圾收集,但是包含一个在最后一次引用该对象时运行的线程,那么该线程是否仍会运行并且代码是否仍会执行?那么你是否可能有一堆应该被删除的鬼对象,但是对你的代码有影响?你怎么防止这种情况?对象是否有办法判断是否等待收集?
Zav*_*ior 5
线程在完成之前不会被垃圾收集,所以如果你的线程永远不会完成,它们将无法用于垃圾收集.正如注释中的fge所指出的那样,线程通常会引用封闭对象,这当然会阻止线程被垃圾收集.
至于知道一个对象是否正在被收集的方式,这个答案有一些很好的细节,你可以(也可以不)做什么.
除此之外,您可以建议jvm使用system.gc()运行垃圾收集,但不能保证jvm将运行垃圾收集器.
归档时间:
12 年,5 月 前
查看次数:
2505 次
最近记录: