线程分类
用户线程:只要线程还没用运行完成,程序就不会退出
守护线程: 任何一个守护线程都是整个程序中所有用户线程的守护者,只要有活着的用户线程,守护线程就活着。当JVM实例中最后一个非守护线程结束时,也随JVM一起退出
守护线程案例
public class DaemonThreadDemo implements Runnable{
@Override
public void run() {
while (true){
System.out.println(Thread.currentThread().getName());
}
}
public static void main(String [] args) throws InterruptedException {
Thread thread = new Thread(new DaemonThreadDemo());
//开启守护线程 调用start之前调用 会随着主线程休眠退出
thread.setDaemon(true);
thread.start();
Thread.sleep(2000L);
}
}
守护线程的用处
jvm垃圾清理线程
建议:尽量少使用守护线程,因为不可控不要在守护线程里进行读写操作、执行计算逻辑