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

Posted chiweiming

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java多线程学习——任务定时调度相关的知识,希望对你有一定的参考价值。

Timer

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

schedule()的参数介绍:

技术图片

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

以上是关于Java多线程学习——任务定时调度的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot几种定时任务的实现方式 和多线程执行任务

Java基础学习——多线程之线程池

JAVA SE基础篇61.多线程相关1

java 多线程——quartz 定时调度的例子

多线程基础学习

多线程编程学习一(Java多线程的基础)