java定时器工具类_java Timer工具类实现定时器任务

第一 schedule 方法 三个参数 按照顺序 (执行的任务方法,开始执行时间,多少时间后循环去执行)  代码可用

public class TestScheedule {

public static void mutilmethod() throws InterruptedException {

Date date=new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("这是一个定时循环执行的方法"+dateFormat.format(date));

Thread.sleep(1000);

}

public static void main(String[] args) throws Exception {

final SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date startDate = dateFormatter.parse("2019-2-28 9:41:00");

Timer timer = new Timer();

//三个 参数

timer.schedule(new TimerTask() {

@Override

public void run() {

try {

mutilmethod();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}, 0,5000);//0ms后立刻执行 2000ms后循环执行这个方法

}

}

第二种方式

scheduleAtFixedRate方法

public class TestScheduleAtFixed {

public static void mutilmethod() throws InterruptedException {

Date date=new Date();

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

System.out.println("这是一个定时循环执行的方法"+dateFormat.format(date));

Thread.sleep(2000);

}

public static void main(String[] args) throws ParseException {

SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date startDate = dateFormatter.parse("2019-2-28 10:24:50");

Timer timer=new Timer();

timer.scheduleAtFixedRate(new TimerTask() {

@Override

public void run() {

try {

mutilmethod();

} catch (Exception e) {

e.printStackTrace();

}

}

},startDate,1000);

}

}

总结 当 一个方法执行时间超过 定时器任务设置循环任务执行时间 那么就会按照方法执行时间去执行 方法执行完毕 立刻再去执行方法。

如果一个方法执行时间 不超过定时器设置的任务时间 那么就会按照设置的时间去执行

总之就一句话 始终按照用时最长的那个去运行。 简单地说就是

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值