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 提供了两种类型的线程:守护线程 和 用户线程 用户线程 (User Thread) 是高优先级线程。JVM 会在终止之前等待任何用户线程完成其任务。 守护线程 (Daemon Thread) 是低优先级线程。其唯一作用是为用户线程提供...
在Java中,线程分为两种类型:用户线程(User Thread)和守护线程(Daemon Thread)。这两种线程在大部分行为上是相同的,但它们在决定虚拟机何时退出时有显著差异。 用户线程是程序的主要部分,Java虚拟机(JVM)...
1、在 java 中守护线程和本地线程区别? java 中的线程分为两种:守护线程(Daemon)和用户线程(User)。任 何线程都可以设置为守护线程和用户线程,通过方法 Thread.setDaemon(boolon);true 则把该线程设置为守护...
User和Daemon两者几乎没有区别,的不同之处在于虚拟机的离开:如果 User Thread已经全部退出运行了,只剩下Daemon Thread存在了,虚拟机也退出了。 因为没有了被守护者,Daemon也没有工作可做了,也没有继续运行...
Java中的线程可以分为守护线程(DaemonThread)和用户线程(UserThread)两类。守护线程和用户线程的唯一区别是它们对虚拟机的退出(程序的终止)的影响。 当JVM中只有守护线程时,虚拟机会退出,程序终止;而当JVM中至少...
Java中的线程分为两种类型:守护线程(Daemon)和用户线程(User)。这两类线程的主要区别在于它们对Java虚拟机(JVM)生命周期的影响。守护线程主要是为其他线程提供服务,比如垃圾回收线程,而用户线程则包含应用...
- **用户线程(User Thread)**:用户线程是程序的主要工作线程,只要至少有一个用户线程还在运行,程序就不会终止。 3. 线程池的使用: Java 提供了 `java.util.concurrent` 包中的 `ExecutorService` 和 `...
Java中的线程可以分为两类,即daemon线程(守护线程)和User线程(用户线程)。守护线程是一种特殊的线程,它们的生命周期并不受主线程的影响,而用户线程则是我们可以看到的线程。 在JVM启动时,main函数所在的...
2)、在Daemon线程中产生的新线程也是Daemon的。 守护线程不能用于所有的应用,例如读写操作或者计算逻辑,因为在Daemon Thread还没来的及进行操作时,虚拟机可能已经退出了。例如,在守护线程中执行文件输出操作时...
守护线程与用户线程(User Thread)的主要区别在于它们在程序生命周期中的角色。用户线程是应用程序运行的基础,只要还有用户线程在执行,Java虚拟机(JVM)就不会退出。而守护线程则不阻碍JVM的关闭,当所有用户...
在Java中,线程分为用户线程(User Thread)和守护线程(Daemon Thread)。这两种线程的区别主要在于程序退出的方式: - **用户线程**:默认创建的线程都是用户线程。如果程序中所有用户线程都结束了,则程序也会随...
Java 中有两类线程:User Thread(用户线程)和 Daemon Thread(守护线程)。用户线程即运行在前台的线程,而守护线程是运行在后台的线程。守护线程的作用是为其他前台线程的运行提供便利服务,而且仅在普通、非守护...
2. 守护线程和用户线程的区别:守护线程为其他线程提供服务,如果全部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。用户线程是程序创建的线程。 3. 线程的分类:Java 中的线程分为两种:守护线程...
两者的区别:唯一的区别是判断虚拟机(JVM)何时离开,Daemon 是为其他线程提供服务,如果全部的 User Thread 已经撤离,Daemon 没有可服务的线程,JVM 撤离。 五、为什么使用 Executor 框架? 每次执行任务创建...
在 Java 中,有两种主要的线程模型:守护线程(Daemon Threads)和用户线程(User Threads)。守护线程主要用于服务用户线程,而用户线程是程序执行的主要部分,当所有用户线程结束时,程序会终止。在 Swing 中,EDT...
- 用户线程(User Thread):正常执行任务的线程,非守护线程,当所有用户线程结束时,JVM会退出。 - 守护线程(Daemon Thread):如垃圾回收器,不阻碍JVM退出,一般用于后台服务。 6. **内存模型**: - Java...
在Daemon线程中产生的新线程也是Daemon的。同时,我们不能认为所有的应用都可以分配给Daemon来进行服务,比如读写操作或者计算逻辑。因为你不可能知道在所有的User完成之前,Daemon是否已经完成了预期的服务任务。 ...