Java线程之Daemon线程
- 主线程会从main()方法开始执行,直到main方法结束后停止JVM。如果主线程启动了额外的线程,那么默认都会等待被启动的所有线程都执行完run()方法后才终止JVM。如果一个Thread被表示为Daemon线程,在所有线程都接受时,JVM就会终止。
- main线程是一个非Daemon线程在启动了线程DaemonRunner之后随着main方法执行完毕而终止,而此时Java虚拟机中已经没有非Daemon线程,JVM退出。JVM的所有Daemon线程都需要立即终止。
public class DaemonDemo {
public static void main(String[] args) {
Thread th = new Thread() {
@Override
public void run() {
while (true) {
System.out.println("Orz");
}
}
};
//th.setDaemon(true);//设置守护进程为true
th.start();
}
}
- 如果没有把setDaemon设置为true,那么程序就会不断输出Org。