Java线程分为用户线程和守护线程,线程的daemon属性为true表示是守护线程,false表示是用户线程。
守护线程是一种特殊的线程,在后台默默的完成一些系统性的服务,比如垃圾回收线程
用户线程是系统的工作线程,它会完成这个程序需要完成的业务操作
重点:当程序中所有用户线程执行完毕后,不管守护线程是否结束,系统都会自动退出。守护线程不能单独存在。
设置守护线程,需要在start()方法之前进行
- 用户线程未结束,程序一直运行
- 用户线程结束,程序跟着结束
public static void main(String[] args) {
Thread a = new Thread(() -> {
System.out.println(Thread.currentThread().getName() + " come in:" + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程"));
while (true) {
}
}, "a");
// a.setDaemon(true);
a.start();
try {Thread.sleep(2);} catch (InterruptedException e) {e.printStackTrace();}
System.out.println(Thread.currentThread().getName() +":" + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程") + " task is over");
}
进微信群和大佬面对面学习交流👇🏻👇🏻👇🏻