当前位置:  开发笔记 > 编程语言 > 正文

将唯一引用设置为null意味着它及其子线程是否被垃圾收集?

如何解决《将唯一引用设置为null意味着它及其子线程是否被垃圾收集?》经验,为你挑选了2个好方法。

我有一个必须作为服务生活的应用程序,我创建一个对象,然后产生一大堆线程.

如果我将对该对象的唯一引用设置为null将清除所有子线程?或者我会遭受内存泄漏.

我是否必须显式终止所有子线程?



1> izb..:

线程和静态引用是"根对象".它们不受GCing的影响,任何可以直接或间接追溯到它们的东西都无法收集.因此,只要它们正在运行,就不会收集线程.一旦run方法退出,GC就会占用任何未引用的线程对象.



2> Jon Skeet..:

是的,你需要确保你的其他线程停止.垃圾收集器与此无关.你也应该以有序的方式这样做 - 不要只是中止它们.

这是C#中用于合作终止线程的模式 - 很容易转换为Java.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有