守护线程

守护线程

java中线程分为两大类:

  • 用户线程

  • 守护线程

    其中具有代表性的就是:垃圾回收线程(守护线程)。

守护线程的特点:一般守护线程是一个死循环,所有的用户线程只要结束,守护线程自动结束。

注意:主线程main方法是一个用户线程。

守护线程使用的地方:

  • 每天0:00点系统自动备份 。需要使用定时器,并且我们可以将定时器设置为守护线程。一直需要使用到定时器,每到0:00的时候就备份一次,所有的用户线程,如果结束了,守护线程就自动退出。(死循环)

定时器

实现线程的第三种方式:FutureTask方式,实现Callable接口。(JDK8新特性)

关于Object类种的wait和notify方法。(生产者消费者模式!)

模拟守护线程!

package ThreadTest;

public class ThreadTest {
    public static void main(String[] args) throws InterruptedException {
        BakDataThread bakDataThread = new BakDataThread();
        Thread thread = new Thread(bakDataThread,"守护线程");
        //开启守护线程   开启后线程会在主线程结束的时候自动结束。
        thread.setDaemon(true);
        thread.start();
        for (int i = 0; i < 10; i++) {
            Thread.sleep(1000);
            System.out.println("==========主程序运行中==========");
        }
    }
}
class BakDataThread implements Runnable{
    @Override
    public void run() {
        int i = 0;
        while (true){
            System.out.println(Thread.currentThread().getName()+"--->"+(i++));
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}
posted @ 2022-03-11 14:52  Tian-Jotian-Yongxing  阅读(664)  评论(0)    收藏  举报