一般情况下不做特别说明配置,默认都是用户线程

 

User Thread

是系统的工作线程,它会完成这个程序需要完成的业务操作

 

Daemon Thread

是一种特殊的线程,为其它线程服务的,在后台默默的完成一些系统性的服务,比如垃圾回收线程就是最典型的例子

守护线程作为一个服务线程,没有服务对象就没有必要继续运行了

如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了

所以加入当系统只剩下守护线程的时候,java虚拟机会自动退出

 

 1     public static void main(String[] args) throws InterruptedException {
 2         Thread t1 = new Thread(() -> {
 3             System.out.println(Thread.currentThread().getName() + "开始运行," + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程"));
 4             while (true) {}
 5         }, "t1");
 6         t1.setDaemon(true);
 7         t1.start();
 8         
 9         TimeUnit.SECONDS.sleep(3);
10 
11         System.out.println("主线程结束");
12     }

 

posted on 2024-06-02 15:29  不会java的菜鸟程序员  阅读(7)  评论(0编辑  收藏  举报