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

    二 查看效果

  • 相关阅读:
    LeetCode 264. Ugly Number II
    LeetCode 231. Power of Two
    LeetCode 263. Ugly Number
    LeetCode 136. Single Number
    LeetCode 69. Sqrt(x)
    LeetCode 66. Plus One
    LeetCode 70. Climbing Stairs
    LeetCode 628. Maximum Product of Three Numbers
    Leetcode 13. Roman to Integer
    大二暑假周进度报告03
  • 原文地址:https://www.cnblogs.com/ZXF6/p/14096222.html
Copyright © 2011-2022 走看看