美文网首页
Java多线程--守护线程

Java多线程--守护线程

作者: 轻轻敲醒沉睡的心灵 | 来源:发表于2021-05-06 16:30 被阅读0次

    Java中线程分为两大类,一类是用户线程,一类是守护线程(后台线程)。
    守护线程中具有代表性的就是:垃圾回收线程(守护线程)。
    守护线程的特点:一般守护线程是一个死循环,所有的用户线程只要结束,守护线程自动结束。
    Java程序入口就是由JVM启动main线程,main线程又可以启动其他线程。当所有用户线程都运行结束时,JVM退出,进程结束。
    注意:主线程main方法是一个用户线程。
    守护线程另一个主要用处就是 定时任务。因为一个定时触发任务是无限循环的

    class TimerThread extends Thread {
        @Override
        public void run() {
            while (true) {
                System.out.println(LocalTime.now());
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    break;
                }
            }
        }
    }
    

    如果这个线程不是守护线程,那么此线程不结束,JVM进程就无法结束。

    创建守护线程

    Thread t = new MyThread();
    t.setDaemon(true);
    t.start();
    

    注意:守护线程不能持有任何需要关闭的资源,例如打开文件等,因为虚拟机退出时,守护线程没有任何机会来关闭文件,这会导致数据丢失

    相关文章

      网友评论

          本文标题:Java多线程--守护线程

          本文链接:https://www.haomeiwen.com/subject/rljddltx.html