美文网首页
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