有什么方法可以确认线程在执行结束时是否被杀死?如果垃圾收集器需要很长时间才能销毁线程,即使它们可供 GC,也可能会出现内存不足异常。要消除此类问题,最好知道线程是否已被破坏。
到目前为止,我的理解是,在 run 方法结束时,线程被杀死,我们不需要显式地执行任何操作来杀死线程实例。
提前致谢!
class A
{
public static void main()
{
Thread t = new Thread(new TestA());
t.start();
Thread t1 = new Thread(new TestB());
t1.start();
Thread t2 = new Thread(new TestC());
t2.start();
}
}
class TestA implements Runnable {
Thread t;
public void run() {
for(...){
try{
}catch()
{
....
}
}
}
}
最佳答案
您说的完全正确:“在 run 方法结束时,线程被终止,我们不需要显式执行任何操作来终止线程实例”。通常,只需让线程离开其 run()
方法就足够了。
如果您想确保特定线程已终止,则 Thread.isAlive()将检查,并且 Thread.join()会等到它发生。如果您担心一组特定的线程,请在某处保留对它们的引用,并使用这些方法检查它们。
关于java - 有没有办法确认线程在执行结束时是否被杀死?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9672123/