Java 后台线程介绍

一  是啥?

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(" 出错了");
            }
            
            
        }
    }
}

 

 

 

 

二 查看效果

 

posted @ 2020-12-07 11:25  送外卖的小菜鸟  阅读(203)  评论(0编辑  收藏  举报