后台线程(守护线程)

有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程”(Daemon Thread),又称为“守护线程”。

典型的后台线程是定时器”Timer"线程,他负责将固定的时间间隔发送给其他的线程。

后台线程经常用于任务结束时的善后处理。另外,后台线程的优先级要比其他的线程优先级低。

和后台线程相比,一般的线程称为“用户线程”。如果一个应用中只有后台线程在运行,JVM将退出该应用程序。

可以通过setDaemon(boolean d)来将一个普通的线程设置为后台线程。用方法isDaemon()可以用于测试特定的线程是否为后台线程。

package com.liujl.thread;

public class DaemonThread extends Thread{
    @Override
    public void run() {
        while(true){
            System.out.println("DaemonThread is running...");
        }
    };
    
    public static void main(String[] args) {
        DaemonThread dt=new DaemonThread();
    //    dt.setDaemon(true);
        dt.start();
    }
    /**
     * dt.setDaemon(true),设置了dt线程为守护线程,这时调用start();
     * 在dt这个线程执行一段时间后将会自动退出,这是因为线程调度程序在监测到只有
     * 一个后台线程在运行的时候,它就终止这个引用程序的运行。
     * 
     * 读者可以把第13行的代码去掉,再次运行这个引用,此时这个应用程序将永无止境的运行下去。
     */
}

  

原文地址:https://www.cnblogs.com/ytfcz/p/4282756.html