scheduleatfixedrate
scheduleatfixedrate(task,time,period)
task-所要安排的任务 time-首次执行任务的时间 period-执行一次task的时间间隔,单位毫秒
作用:时间等于或超过time首次执行task,之后每隔period毫秒重复执行task
import java.text.simpledateformat;
import java.util.calendar;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
@Override
public void run() {
Calendar calendar = Calendar.getinstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
System.out.println("NO.1");
}
public static void main(String[] args) {
MyTimerTask task = new MyTimerTask();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
System.out.println(format.format(calendar.getTime()));
calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
Timer timer = new Timer();
timer.scheduleAtFixedRate(task,calendar.getTime(),2000);
}
}
scheduleAtFixedRate(task, delay,period)
task-所要执行的任务 delay-执行任务的延迟时间,单位毫秒 period-执行一次task的时间间隔
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;
public class MyTimerTask extends TimerTask {
@Override
public void run() {
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
System.out.println("Current Time:"+format.format(calendar.getTime()));//获取当前系统时间
System.out.println("NO.1");
}
public static void main(String[] args) {
MyTimerTask task = new MyTimerTask();
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-DD HH:mm:ss");
System.out.println(format.format(calendar.getTime()));
calendar.add(Calendar.SECOND,3);//获取距离当前时间3秒后的时间
Timer timer = new Timer();
//timer.scheduleAtFixedRate(task,calendar.getTime(),2000);
timer.scheduleAtFixedRate(task,1000,2000);
}
}
相关阅读
公司有个定时任务,跑了10+天挂了,看日志没有任何的错误信息,查找一番发现问题所在,记录一下。 一直以为scheduleAtFixedRate()和sched
线程池之 newScheduledThreadPool中scheduleAtFixedRa
说明:在处理消费数据的时候,统计tps,需要用一个线程监控来获得tps值,则使用了定时任务的线程池中的方法 scheduleAtFixedRate(),此方法