zoukankan      html  css  js  c++  java
  • 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(" 出错了");
                }
                
                
            }
        }
    }

    二 查看效果

  • 相关阅读:
    Jquery 实现banner图滚动效果
    常用正则表达式集锦
    获取客户端ip并用正则表达式验证
    锋利的jquery学习笔记
    ASP.NET 中DataGrid item 绑定方法
    SQL float 保留两位小数
    android 应用程序中执行Linux 命令
    UBUNTU 测试跑分
    The declared package..does not match the expected package..
    mybatis 配置文件 配置别名
  • 原文地址:https://www.cnblogs.com/ZXF6/p/14096222.html
Copyright © 2011-2022 走看看