`

daemon线程和user线程的区别

 
阅读更多

java中的线程分为两大类:daemon和User线程。

默认创建的都是user线程。

当进程中不存在任何User线程时jvm就会退出。

比如

public class TestRxJava {

    private static final String THREAD_NUM="sub-thread";

    public static void main(String[] args) {
        System.out.println("--"+Thread.currentThread().getName()+"-----");

       Thread thread =new Thread(new Runnable(){


               public void run(){


               try{
                   Thread.sleep(2000);

                   System.out.println("--"+Thread.currentThread().getName()+"-----");
                }
               catch(InterruptedException e){
                   e.printStackTrace();
               }
           }
       },THREAD_NUM);

        //thread.setDaemon(true);
        thread.start();




    }


}

 这个是user进程 一定会等sub-thread打印完才结束,如果设置thread.setDaemon(true);则main打印完jvm就结束了,sub-thread没机会打印了。

分享到:
评论

相关推荐

    Java 守护线程,看这篇文章就对了! ( Daemon Thread )

    Java 提供了两种类型的线程:守护线程 和 用户线程 用户线程 (User Thread) 是高优先级线程。JVM 会在终止之前等待任何用户线程完成其任务。 守护线程 (Daemon Thread) 是低优先级线程。其唯一作用是为用户线程提供...

    Java线程之守护线程(Daemon)用法实例

    在Java中,线程分为两种类型:用户线程(User Thread)和守护线程(Daemon Thread)。这两种线程在大部分行为上是相同的,但它们在决定虚拟机何时退出时有显著差异。 用户线程是程序的主要部分,Java虚拟机(JVM)...

    JAVA最新面试资料-备战2023金三银四

    1、在 java 中守护线程和本地线程区别? java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任 何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护...

    Java多线程守护线程

     User和Daemon两者几乎没有区别,的不同之处在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也退出了。 因为没有了被守护者,Daemon也没有工作可做了,也没有继续运行...

    详解Java线程-守护线程与用户线程

    Java中的线程可以分为守护线程(DaemonThread)和用户线程(UserThread)两类。守护线程和用户线程的唯一区别是它们对虚拟机的退出(程序的终止)的影响。 当JVM中只有守护线程时,虚拟机会退出,程序终止;而当JVM中至少...

    谈谈Java中的守护线程与普通线程

    Java中的线程分为两种类型:守护线程(Daemon)和用户线程(User)。这两类线程的主要区别在于它们对Java虚拟机(JVM)生命周期的影响。守护线程主要是为其他线程提供服务,比如垃圾回收线程,而用户线程则包含应用...

    java线程和线程池的使用.docx

    - **用户线程(User Thread)**:用户线程是程序的主要工作线程,只要至少有一个用户线程还在运行,程序就不会终止。 3. 线程池的使用: Java 提供了 `java.util.concurrent` 包中的 `ExecutorService` 和 `...

    浅谈java中守护线程与用户线程

    Java中的线程可以分为两类,即daemon线程(守护线程)和User线程(用户线程)。守护线程是一种特殊的线程,它们的生命周期并不受主线程的影响,而用户线程则是我们可以看到的线程。 在JVM启动时,main函数所在的...

    浅谈java的守护线程与非守护线程

    2)、在Daemon线程中产生的新线程也是Daemon的。 守护线程不能用于所有的应用,例如读写操作或者计算逻辑,因为在Daemon Thread还没来的及进行操作时,虚拟机可能已经退出了。例如,在守护线程中执行文件输出操作时...

    java 变形金刚中的守护神(守护线程)

    守护线程与用户线程(User Thread)的主要区别在于它们在程序生命周期中的角色。用户线程是应用程序运行的基础,只要还有用户线程在执行,Java虚拟机(JVM)就不会退出。而守护线程则不阻碍JVM的关闭,当所有用户...

    JUC代码演示 Java多线程并发

    在Java中,线程分为用户线程(User Thread)和守护线程(Daemon Thread)。这两种线程的区别主要在于程序退出的方式: - **用户线程**:默认创建的线程都是用户线程。如果程序中所有用户线程都结束了,则程序也会随...

    【java 多线程】守护线程与非守护线程的详解

    Java 中有两类线程:User Thread(用户线程)和 Daemon Thread(守护线程)。用户线程即运行在前台的线程,而守护线程是运行在后台的线程。守护线程的作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护...

    并发编程 75 道面试题及答案.docx

    2. 守护线程和用户线程的区别:守护线程为其他线程提供服务,如果全部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。用户线程是程序创建的线程。 3. 线程的分类:Java 中的线程分为两种:守护线程...

    JAVA面试题 用于面试前练手,有需要的自取

    两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。 五、为什么使用 Executor 框架? 每次执行任务创建...

    几个swing多线程的例子

    在 Java 中,有两种主要的线程模型:守护线程(Daemon Threads)和用户线程(User Threads)。守护线程主要用于服务用户线程,而用户线程是程序执行的主要部分,当所有用户线程结束时,程序会终止。在 Swing 中,EDT...

    Java多线程、并发编程知识点总结[归类].pdf

    - 用户线程(User Thread):正常执行任务的线程,非守护线程,当所有用户线程结束时,JVM会退出。 - 守护线程(Daemon Thread):如垃圾回收器,不阻碍JVM退出,一般用于后台服务。 6. **内存模型**: - Java...

    Java守护线程实例详解_动力节点Java学院整理

    在Daemon线程中产生的新线程也是Daemon的。同时,我们不能认为所有的应用都可以分配给Daemon来进行服务,比如读写操作或者计算逻辑。因为你不可能知道在所有的User完成之前,Daemon是否已经完成了预期的服务任务。 ...

Global site tag (gtag.js) - Google Analytics