Java线程之Daemon线程

381 阅读1分钟

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。