守护线程:
默认情况下,Java 进程需要等待所有线程都运行结束,才会结束。有一种特殊的线程叫做守护线程,只要其它非守护线程运行结束了,即使守护线程的代码没有执行完,也会强制结束。
log.debug("开始运行...");
Thread t1 = new Thread(() -> {
log.debug("开始运行...");
sleep(2);
log.debug("运行结束...");
}, "daemon");
// 设置该线程为守护线程
t1.setDaemon(true);
t1.start();
sleep(1);
log.debug("运行结束...");
1.JAVA的垃圾回收器也是一种守护线程,在堆内存中分配的对象,当这些对象没有被引用的时候,这些对象会被垃圾回收器定期回收.
2.Tomcat中的Acceptor和Poller线程都是守护线程,用来接收和分发请求.