zoukankan      html  css  js  c++  java
  • 守护线程

    守护线程

    • 线程可以分为用户线程和守护线程

    • 虚拟机必须确保用户线程执行完毕,比如main()主线程

    • 虚拟机不用等待守护线程执行完毕,比如gc()垃圾回收线程

    • 采用Thread.setDaemon(bool)方法设置守护线程,默认为false

    例子

    package MultiProcess;
    
    public class TestDaemon {
        public static void main(String[] args) {
            God god = new God();
            Me me = new Me();
    
            Thread godThread = new Thread(god);
            Thread meThread = new Thread(me);
    
            godThread.setDaemon(true);
    
            godThread.start();
            meThread.start();
        }
    }
    
    
    class God implements Runnable{
        @Override
        public void run() {
            while (true)
                System.out.println("上帝守护着你");
        }
    }
    
    class Me implements Runnable{
        @Override
        public void run() {
            for (int i = 0; i < 36500; i++) {
                System.out.println("开心的过第"+ (i+1) + "天");
            }
            System.out.println("GG");
        }
    }
    
    结果
    上帝守护着你
    上帝守护着你
    开心的过第36497天
    开心的过第36498天
    开心的过第36499天
    开心的过第36500天
    GG
    上帝守护着你
    上帝守护着你
    上帝守护着你
    

    用户线程结束后,守护线程运行了一会,虚拟机停止。

  • 相关阅读:
    浅析TCP /UDP/ IP协议
    大小端模式
    小技巧—计算内存
    浅谈启发式合并
    浅谈换根DP
    POJ 3585 Accumulation Degree
    OSGi类加载问题
    Redis缓存集群方案
    Tair分布式缓存
    Tedis:淘宝的Redis的Java客户端开发包
  • 原文地址:https://www.cnblogs.com/happysml/p/13835317.html
Copyright © 2011-2022 走看看