在游戏中,我正在使用线程的许多实例,并且它不会跟踪它们。
clientThread cT = new clientThread(socket);
new Thread(cT).start();
我需要知道的是,当胎面的一个实例完成时(所有的循环都已经完成并且不再使用它),就像一个方法的实例一样,它被丢弃了吗?或者我是否需要使用一段特殊代码来丢弃它?
答案 0 :(得分:14)
该线程是一个普通对象,它将像任何其他对象一样被垃圾收集。对于线程对象,当线程退出时,它就有资格进行收集。
答案 1 :(得分:4)
run()
完成后,它将被丢弃。您无需添加任何特殊代码即可发布。
注意:丢弃并不意味着,它已从内存中消失(但它不会进一步运行)。下次GC采集运行时可能会进行GC处理。
答案 2 :(得分:2)
如果垃圾收集器到达它,它将被销毁。
答案 3 :(得分:1)
其他朋友的确回答了你的要求。只有一条评论。
我正在使用线程的许多实例,并且它不会保留 跟踪他们。
不要这样做:new Thread(cT).start();
I.e。开始产生线程。
阅读有关线程池和ExecutorService