Java学习笔记之--------线程任务调度

任务调度

  • Timer定时类:一种工具,线程用其安排以后在后台线程中执行的任务。可安排任务执行一次,或者定期重复执行。
    schedule(TimerTask task,Date time):安排在指定的时间执行指定的任务。
    schedule(TimerTask task,Date firstTime,long period):安排指定的任务在指定的时间开始进行重复的固定延迟执行。
  • TimerTask任务类
  • 通过java timer timetask:(spring的任务调度就是通过他们来实现的)
  • 在这种实现方法中,Timer类实现的是类似闹钟的功能,也就是定时或者每隔一定时间触发一次线程。其实,Timer类本身实现的就是一个线程,只是这个线程是用来实现调用其他线程的。而TimerTask类是一个抽象类,该类实现了Runnable接口,所以按照前面的介绍,该类具备多线程的能力。
  • 在这种实现方式中,通过继承TimerTask使该类获得多线程的能力,将需要多线程执行的代码书写在run方法内部,然后通过Timer类启动线程的执行。
  • 在实际使用时,一个Timer可以启动任意多个TimerTask实现的线程,但是多个线程之间会存在阻塞。所以如果多个线程之间如果需要完全独立运行的话,最好还是一个Timer启动一个TimerTask实现。

示例如下:

public class TimerDemo01 {
    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("so easy......");
            }
        }, new Date(System.currentTimeMillis() + 1000), 200);
    }
}

在一秒后开始执行,每200ms执行一次:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/wangruoao/article/details/82967796
今日推荐