守护进程就是守护主线程的一个独立线程,作为辅助线程,跟随主线程。主线程停止,守护线程也就跟随停止。
主要作用是提供计数等功能,如gc内存清理就是跟随的守护线程,GC (垃圾回收器),它就是一个很称职的守护者。
如:
public class C {
public static void main(String[] args) throws Exception {
DaemonThread t = new DaemonThread();
t.setDaemon(true);//this is set t thread as a daemon thread.
t.start();
Thread.sleep(2000);
System.out.println("main thread exit.");
}
}
class DaemonThread extends Thread {
@Override
public void run() {
for (int i = 0; i < 10; i++) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("i=" + i);
}
}
}
输出结果:
i=0
main thread exit.
如果删除守护线程,则是普通线程会一直打印