守护线程
守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。
用户线程
用户线程和守护线程两者几乎没有区别,唯一的不同之处就在于虚拟机的离开:如果用户线程已经全部退出运行了,只剩下守护线程存在了,虚拟机也就退出了。 因为没有了被守护者,守护线程也就没有工作可做了,也就没有继续运行程序的必要了。
使用Thread方式
import java.util.Scanner;
public class DaemonThread extends Thread {
@Override
public void run() {
System.out.println("守护线程启动。。。");
while (true) {
System.out.println("守护线程启动中。。。。。。");
try {
sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
DaemonThread daemonThread = new DaemonThread();
daemonThread.setDaemon(true);
daemonThread.start();
Scanner scanner = new Scanner(System.in);
String input = scanner.next();
System.out.println("输入了 " + input + "。。。");
System.out.println("守护线程结束。。。");
}
}
样例输出:
守护线程启动。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
守护线程启动中。。。。。。
h
输入了 h。。。
守护线程结束。。。
大家体会一下吧
守护线程是每隔一秒输出一条,用户线程监听用户输入,输入后,用户线程结束了,守护线程也结束了。