java主线程关掉其他线程会关掉吗

2024-11-27 19:20:26
推荐回答(3个)
回答1:

Thread有守护线程和非守护线程之分。
守护线程在主线程运行结束后,也会结束运行,而非守护线程不会结束。
线程默认都是非守护线程。可以使用thread.setDeamon方法来设置。
system.exit(0); 代表退出进程,无论什么线程都退出。
下述代码,即使不加System.exit(0),在主线程结束后,其守护线程也会随之中止。
public class t {
public static void main(String[] args) {

System.out.println("kaishi");
asd th = new asd();
th.setDaemon(true);
th.start();
System.out.println(System.currentTimeMillis());
System.out.println("tuichu");
System.out.println(Thread.currentThread().getName()+System.currentTimeMillis());
//System.exit(0);
}

}

class asd extends Thread {

public void run() {
while (true) {
System.out.println(Thread.currentThread().getName()+System.currentTimeMillis());
}
}

回答2:

不会除非主线程强制终止子线程。否则子线程会一直运行,直到自己运行结束。

回答3:

如果你主线程里面没有写关闭其他线程的代码的话,不会