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

如题所述

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());
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-22
不会除非主线程强制终止子线程。否则子线程会一直运行,直到自己运行结束。本回答被提问者和网友采纳
第2个回答  2013-01-22
如果你主线程里面没有写关闭其他线程的代码的话,不会

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

java关掉主线程 子线程会关掉吗
不会的,线程设计的初衷就是相互独立运行,互相之间不会影响,如果主线程的关闭影响子线程了,那就违背设计的初衷了

JVM关闭时死循环线程会退出吗?
JVM一旦退出了,线程自然也会退出的,Java 线程无法独立于 Java 进程存在的。不过,根据题主贴的代码,我想题主想问的是,当 main thread 结束之后,这个线程会不会停止运行。当 main thread 运行结束之后,JVM 会等待其他 non-daemon thread 运行结束,然后不管 daemon thread 是否还在运行,JVM 直接就...

java线程关闭时会执行结束线程的方法吗
在Java服务正常关闭或重启时,未执行完的线程会被中止。但是,这并不意味着线程会立即终止或丢失。在一个正常关闭或重启的过程中,Java虚拟机会尝试以一种安全的方式停止所有的线程。正常关闭:当你调用System.exit()或者通过其他方式(例如:在Spring Boot应用中使用\/shutdown端点)正常关闭应用时,Java虚...

主线程一旦结束,其它线程也会随之结束吗?
所以你得想办法让主线程在子线程结束后才结束。Java中可以通过isAive()方法来判断子线程是否还在执行,如果返回false,就说明子线程已经结束,这时候你就可以结束主线程了。还有一个方法就是在主线程中使用子线程的join()方法。该方法会在子线程结束之前一直等待,直到子线程结束。这样就可以保证主线程...

java多线程javaw.exe未退出问题
主线程结束了,子线程还没有运行完还在运行着呢。如果确定主线程结束后就不需要子线程了就在主线程结束前把子线程强制中断了。如果子线程不是死循环,也可以不处理,子线程执行完会自动退出的。

java主线程结束和子线程结束
而通过main函数则没有框架干预,根据Java的规则只要有普通线程没有退出,程序就不会完全退出(System.exit强制自杀除外),那么除非创建的线程被设置成了后台线程(或者叫守护线程,daemon),那么才会在主线程退出时自动关闭这些后台线程,就是你遇到的偶尔可以输出abcd偶尔不行的效果,否则一定会abcd和efgh...

关于java多线程的疑问,为何单步没问题的程序去除断点后运行就会有问题...
用测试类跑的吧?测试类的主线程结束之后,容器就直接关掉了,你开的那些线程已经没有运行环境了,所以你让主线程等下在结束,容器保持开启状态,其他线程才能执行完;这个问题在程序正常启动的时候是不存在的。

java 父线程退出 子线程会退出么?
但是,如果你是在一个进程里面,建立线程P,然后再在线程P里面创建并且运行线程C1、c2等,那么,当线程P退出的时候,线程c1 c2是不会退出的。。希望可以帮到你。记住,进程与线程是不同的。。而且没有父线程(我只听说过有主线程,也就是进程的另一个称呼)的说法 ...

java线程执行完后自己结束吗
其实最佳答案的说法是有问题的,如果题主指的结束,是指方法块语句的执行结束的话,热心网友的说法是对的。但是对于线程本身,所有线程(包括主线程)在启动后都被CPU参照优先级交替调用,运行的顺序是无法预测的,但最后结束的一定是主线程。网上有部分说法,展示的代码运行结果,“主线程先于其他线程结束...

相似回答