一 是啥?
package com.aaa.threaddemo; /* * 一 Java后台线程? * 守护线程--也称“服务线程”,他是后台线程, * 它有一个特性,即为用户线程 提供 公共服务,在没有用户线程可服务时会自动离开。 * * 优先级:守护线程的优先级比较低,用于为系统中的其它对象和线程提供服务。 设置:通过 setDaemon(true)来设置线程为“守护线程”; 是在 线程对象创建 之前 用线程对象的 setDaemon 方法。 在 Daemon 线程中产生的新线程也是 Daemon 的。 线程则是 JVM 级别的 example: 垃圾回收线程就是一个经典的守护线程,当垃圾回收线程是 JVM 上仅剩的线 程时,垃圾回收线程会自动离开。它始终在低级别的状态中运行,用于实时监控和管理系统 中的可回收资源。 生命周期:守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周 期性地执行某种任务或等待处理某些发生的事件。也就是说守护线程不依赖于终端,但是依 赖于系统,与系统“同生共死”。当 JVM 中所有的线程都是守护线程的时候,JVM 就可以退 出了;如果还有一个或以上的非守护线程则 JVM 不会退出 二 Java中的线程分类? 用户线程和守护线程 三 用户线程? 用户线程就是前台线程 main() 主函数就是前台线程,是程序中必须执行完成的。 所有的前台线程结束后,后台线程才结束。 四 二者区别 前台执行完毕,后台无论是否执行完成,都会被结束! * * */ public class HouTai { public static void main(String[] args) { HouThread houThread = new HouThread(); // 在前台线程设置一个 4 次的for循环,前台线程结束后,后台线程也会结束。 for (int i = 0; i < 4; i++) { //把 houThread 设置为后台线程 houThread.setDaemon(true); houThread.start(); } } } class HouThread extends Thread{ @Override public void run() { while (true) { try { System.out.println(" 我是后台线程 " + Thread.currentThread().getName()); } catch (Exception e) { System.out.println(" 出错了"); } } } }
二 查看效果