开发者社区> 游客e2gqrcu556hxo> 正文

用户线程和守护线程

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

用户线程和守护线程
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虚拟机会自动退出

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
线程优先级及守护线程
假如计算机只有一个 CPU,那么 CPU 在某一个时刻只能执行一条指令,线程只有得到CPU时间片,也就是使用权,才可以执行指令。所以说多线程程序的执行是有随机性,因为谁抢到CPU的使用权是不一定的
23 0
多线程详解p15、守护线程
多线程详解p15、守护线程
25 0
用户线程与守护线程
用户线程与守护线程
37 0
线程 - 守护线程或用户线程(setDaemon)
线程 - 守护线程或用户线程(setDaemon)
33 0
线程 - 守护线程
线程 - 守护线程
34 0
守护线程和本地线程
java中的有两种线程:守护线程(Daemon)和用户线程(User)。
72 0
使用makecontext实现用户线程【转】
转自:http://blog.csdn.net/cyberlabs/article/details/6920138 使用makecontext实现用户线程       现代Unix系统都在ucontext.h中提供用于上下文切换的函数,这些函数有getcontext, setcontext,swapcontext 和makecontext。
806 0
后台线程(守护线程)
有一种线程,它是在后台运行的,它的任务是为其他的线程提供服务,这种线程被称为“后台线程”(Daemon Thread),又称为“守护线程”。 典型的后台线程是定时器”Timer"线程,他负责将固定的时间间隔发送给其他的线程。
674 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载