Java多线程学习——任务定时调度

Timer

本身就是一个线程,最主要的方法就是schedule()。

schedule()的参数介绍:

Java多线程学习——任务定时调度

schedule(TimerTask task, long delay)  //延迟delay毫秒以后执行任务

schedule(TimerTask task, long delay, long period)  //延迟delay毫秒以后执行任务,并且每隔peroid循环执行下去

schedule(TimerTask task, Date time)  //在指定的日期time开始执行任务

schedule(TimerTask task, Date firstTime, long period)  //在指定的日期time开始执行任务,,并且每隔peroid循环执行下去

TimerTask

抽象类,实现了Runnale接口,继承它要实现run方法,run方法里面是任务的内容。

import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;

public class TimerTest {
    public static void main(String[] args) {
        Timer task = new Timer();
        Calendar startTask = new GregorianCalendar();   //创建日历类
        startTask.add(Calendar.SECOND,10);  //获取当前时间点的秒数,然后在此基础上增加10秒
        task.schedule(new MyTask(),startTask.getTime(),1000);   //任务会在当前时间点后的10秒后开始执行

    }
}

class MyTask extends TimerTask {

    @Override
    public void run() {
        System.out.println("Hello,World");
    }
}

有关Date/Calendar等日期类的介绍看:https://www.cnblogs.com/chiweiming/p/11178814.html

上一篇:php – 检查Laravel计划的身份验证


下一篇:java – 在特定日期运行(Spring @Scheduled)作业