定时器

理论基础:

小顶堆:

堆是一个完全二叉树。

  完全二叉树:除了最后一层,都达到最大节点数,且最后一层节点都靠左排列。

根节点最大的堆叫做大顶堆,根节点最小的堆叫做小顶堆。

![image](https://img2022.cnblogs.com/blog/2968215/202211/2968215-20221124230000412-1841049314.png)

时间轮算法:

JDK定时器Timer

Timer是一个定时器工具,用来执行指定的任务

TimerTask: 抽象类

delay(开始执行的等待时间)

Timer是一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。实际上是个线程,定时调度所拥有的TimerTasks。

TimerTask是一个抽象类,它的子类由 Timer 安排为一次执行或重复执行的任务。实际上就是一个拥有run方法的类,需要定时执行的代码放到run方法体内。

image

package com.xxx.test1;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.TimerTask;

public class MyTimerTask extends TimerTask {

    private int num = 1;

    @Override
    public void run() {
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter("1.txt"));
            bw.write(num+"");
            num++;
            bw.flush();
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

package com.xxx.test1;

import java.util.Timer;

public class Exe {
    public static void main(String[] args) {

        Timer timer = new Timer();
        MyTimerTask task = new MyTimerTask();

        timer.schedule(task,1000,1000);

        try {
            Thread.sleep(2000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }
}

定时任务线程池

定时任务框架-quartz

posted @ 2023-01-17 21:28  Ritchie^._.^  阅读(101)  评论(0)    收藏  举报