六、守护线程

守护(Daemon)线程

  • 线程分为用户线程守护线程
  • 虚拟机必须确保用户线程执行完毕
  • 虚拟机不必等待守护线程执行完毕
  • 使用setDaemon()方法将线程设置为守护线程(默认为用户线程)
  • 守护线程的默认优先级比较低
  • 如:后台日志、监控内存、垃圾回收等等
例:
public class TestDaemon {
    public static void main(String[] args) {
        God god = new God();
        You you = new You();

        Thread t1 = new Thread(god);
        t1.setDaemon(true);
        t1.start();

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

// 守护线程
class God implements Runnable {
    @Override
    public void run() {
        // 虚拟机不必等待守护线程执行完毕,所以不用担心死循环
        while (true) {
            System.out.println("上帝模式————守护线程");
        }
    }
}
// 用户线程
class You implements Runnable {
    @Override
    public void run() {
        for (int i = 0; i < 36500; i++) {
            System.out.println("活着");
        }
        System.out.println("Goodbye World");
    }
}
posted @ 2021-08-02 17:19  冷火凉烟  阅读(34)  评论(0)    收藏  举报