用户线程和守护线程

简介: 守护线程守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程用户线程是系统的工作线程,它会完成这个程序需要完成的业务操作

用户线程和守护线程
Java线程分为用户线程和守护线程,线程的daemon属性为true表示是守护线程,false表示是用户线程
守护线程
守护线程是一种特殊的线程,在后台默默地完成一些系统性的服务,比如垃圾回收线程
用户线程
是系统的工作线程,它会完成这个程序需要完成的业务操作
代码示例
public class DaemonDemo {

public static void main(String[] args) {
    Thread t1 = new Thread(() -> {
        System.out.println(Thread.currentThread().getName() + "\t 开始运行," + (Thread.currentThread().isDaemon() ? "守护线程" : "用户线程"));
        while (true){

        }
    }, "t1");
    t1.setDaemon(true);
    t1.start();

    try {
        TimeUnit.SECONDS.sleep(3);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    System.out.println("------main线程运行完毕");
}

}
说明
当程序中所有用户线程执行完毕之后,不管守护线程是否结束,系统都会自动退出
设置守护线程,需要在start()方法之前进行
如果用户线程全部结束了,意味着程序需要完成的业务操作已经结束了,系统可以退出了。所以当系统只剩下守护进程的时候,java虚拟机会自动退出

相关文章
|
1月前
|
Java
线程池中的空余线程是如何被回收的
线程池中的空余线程是如何被回收的
31 1
|
4月前
|
Java
学习多线程之守护线程
学习多线程之守护线程
32 0
|
6月前
|
Java 开发者
停止线程 & 守护线程 & 线程阻塞
停止线程 & 守护线程 & 线程阻塞
9 0
停止线程 & 守护线程 & 线程阻塞
|
6月前
|
并行计算 安全 Java
探索多线程编程:守护线程与线程生命周期
探索多线程编程:守护线程与线程生命周期
31 0
|
8月前
|
Java
JUC--用户线程和守护线程
java线程分为用户线程和守护线程 一般不做特别说明配置,默认都是用户线程 用户线程:是系统的工作线程,它会完成这个程序需要完成的业务操作。 守护线程:是一种特殊的线程,为其他线程服务的,在后台完成一些系统性的服务,如:垃圾回收线程。
|
Java 调度
线程优先级及守护线程
假如计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性,因为谁抢到CPU的使用权是不一定的
96 0
线程优先级及守护线程
【JavaSE】多线程篇(三)用户线程、守护线程与线程的7大状态
文章目录 1 用户线程与守护线程 2 如何将一个线程设置为守护线程? 3 线程的7大状态 3.1 为什么说7大而非6大? 3.3 通过程序查看线程的状态 写在最后
【JavaSE】多线程篇(三)用户线程、守护线程与线程的7大状态
|
监控 Java
多线程详解p15、守护线程
多线程详解p15、守护线程
|
Java 编译器
用户线程与守护线程
用户线程与守护线程
94 0
线程 - 守护线程或用户线程(setDaemon)
线程 - 守护线程或用户线程(setDaemon)
76 0
线程 - 守护线程或用户线程(setDaemon)