3

在我制作的游戏中,我使用了许多线程实例,但它不会跟踪它们。

clientThread cT = new clientThread(socket);
new Thread(cT).start();

我需要知道的是,当胎面的实例完成时(所有循环都已完成并且不再使用),就像方法的实例一样,它会被丢弃吗?还是我需要使用一段特殊的代码来丢弃它?

4

4 回答 4

14

线程是一个普通对象,它将像任何其他对象一样被垃圾收集。在线程对象的情况下,当线程退出时,它就有资格被收集。

于 2012-08-15T20:14:58.683 回答
4

完成后将立即丢弃run()。你不需要添加任何特殊的代码来发布。

注意:丢弃并不意味着它已经从内存中消失了(但它不会进一步运行)。当下次 GC 收集运行时,它可能会被 GC。

于 2012-08-15T20:13:57.720 回答
2

如果垃圾收集器到达它,它将被销毁。

于 2012-08-15T20:14:31.200 回答
1

其他朋友完全按照您的要求回答。只有一条评论。

我正在使用线程的许多实例,但它不会跟踪它们。

不要这样做:new Thread(cT).start();即开始产生线程。
阅读有关线程池和ExecutorService的信息

于 2012-08-15T20:42:45.270 回答