Java线程Timer定时器用法详细总结

2020-02-18 18:00:46王冬梅

import java.util.Date;

import java.util.TimerTask;

 

public class MyTask extends TimerTask{

 

  @Override

  public void run() {

    System.out.println("任务开始: "+new Date());

    System.out.println("mytask...");

    System.out.println("任务结束: "+new Date());

  }

}

 

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

 

public class Run {

  public static void main(String[] args){

    System.out.println("当前时间为:"+new Date());

    Calendar c = Calendar.getInstance();

    c.add(Calendar.SECOND, 10);

    Date runDate1 = c.getTime();

    System.out.println("计划时间为:"+runDate1);

     

    MyTask myTask = new MyTask();

    Timer timer = new Timer();

    timer.schedule(myTask, runDate1, 10000);

  }

}

TimerTask类的cancel()方法

TimerTask类中的cancel()方法的作用是将自身从任务队列中进行清除.

import java.util.Date;

import java.util.TimerTask;

 

public class MyTaskA extends TimerTask{

 

  @Override

  public void run() {

    System.out.println("A run timer="+new Date());

    this.cancel();

    System.out.println("A任务自己移除自己");

  }

}

 

import java.util.Date;

import java.util.TimerTask;

 

public class MyTaskB extends TimerTask{

 

  @Override

  public void run() {

    System.out.println("B run timer="+new Date());

  }

}

 

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

 

public class Run {

  public static void main(String[] args){

    System.out.println("当前时间为:"+new Date());

    Calendar c = Calendar.getInstance();

    Date runDate1 = c.getTime();

    System.out.println("计划时间为:"+runDate1);

     

    MyTaskA myTaskA = new MyTaskA();

    MyTaskB myTaskB = new MyTaskB();

    Timer timer = new Timer();

    timer.schedule(myTaskA, runDate1, 4000);

    timer.schedule(myTaskB, runDate1, 4000);

  }

}

Timer的cancel()方法

和TimerTask类中的cancel()方法清除自身不同,Timer类中的cancel()方法作用是将任务队列中全部的任务进行清空。

import java.util.Date;

import java.util.TimerTask;

 

public class MyTaskA extends TimerTask{

 

  @Override

  public void run() {

    System.out.println("A run timer="+new Date());

    this.cancel();

    System.out.println("A任务自己移除自己");

  }

}

 

import java.util.Date;

import java.util.TimerTask;

 

public class MyTaskB extends TimerTask{

 

  @Override

  public void run() {

    System.out.println("B run timer="+new Date());

  }

}

 

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

 

public class Run {

  public static void main(String[] args){

    System.out.println("当前时间为:"+new Date());

    Calendar c = Calendar.getInstance();

    Date runDate1 = c.getTime();

    System.out.println("计划时间为:"+runDate1);

     

    MyTaskA myTaskA = new MyTaskA();

    MyTaskB myTaskB = new MyTaskB();

    Timer timer = new Timer();

    timer.schedule(myTaskA, runDate1, 4000);

    timer.schedule(myTaskB, runDate1, 4000);

  }

}