守护线程(thread.setDaemon(true))

 

正常的线程都是用户线程(主线程main是用户线程)

  1. !!!Main主线程里面的线程默认是用户线程的,要设置为守护线程就是用thread.setDaemon(默认为false为用户线程,true表示未守护线程)
  2. 当用户线程完成后,jvm要保证用户线程完成,jvm并不会去保证守护线程的运行,所以当用户线程执行完,守护线程就会停止(这里是虚拟机停止还需要一点时间,所以上帝还跑了一会才停止)

 

 

 

虚拟机停止还需要一点时间

 

package org.example.threaddaemon;

/**
 * 测试守护线程
 */
public class TestDaemon {
    public static void main(String[] args) {
        God god = new God();
        Thread thread = new Thread(god);
        thread.setDaemon(true);//默认为false,为用户线程。true为守护线程
        thread.start();

        You you = new You();
        new Thread(you).start();
    }
}

class You implements Runnable{
    @Override
    public void run() {
        for (int i=0;i<=100;i++){
            System.out.println("上帝还没死呢再看着你蠢货");
        }
        System.out.println("====sayBy this word=====");

    }

}

class God implements Runnable{

    @Override
    public void run() {
        while(true){
            System.out.println("上帝这个老乌龟还活着");
        }

    }
}





点击阅读全文
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐