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