不。它在运行时不会被收集或停止。
您应该在线程内停止线程,例如使用命令
return;
是的。
下面是一个实验:
public class Main {
public static void main(String[] args) {
Runnable r = new Runnable(){
public void run() {
for (int i=0; i < 10; i++) {
System.out.println("Thread is running");
}
return;
}
};
Thread t=new Thread(r);
t.start();
t=null;
System.out.println("App finished");
}
}
结果如下:
App finished
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
Thread is running
因此,即使在主线程将引用设置为null并停止工作之后,线程也没有停止或收集。