您的位置:首页 > 编程语言 > Java开发

基于Timer和TimerTask的定时任务

2017-05-30 11:45 288 查看
class MyTimerTask extends TimerTask{
private String name;
public MyTimerTask(String inputname){
this.name=inputname;
}
public void run(){
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.SECOND,6);
SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println("现在时间为:"+sf.format(calendar.getTime()));
//        cancel();//取消当前任务
}
}
public class TestSchedule {
public static void main(String[] args){
Timer timer = new Timer();
timer.schedule(new MyTimerTask("sth"),2000,1000);
//TimerTask.scheduledExecutionTime()返回的是最近一次计划执行时间

timer.schedule(new MyTimerTask("gui"),1000,1000);
/*timer.schedule的四种用法:
1.schedule(task,time)
2.schedule(task,time,period)
3.schedule(task,delay,period)
4.schedule(task,delay)
*/
//        timer.cancel();终止timer下所有任务
//timer.purge();返回终止的任务数目
/*有以下两种分情况:
1.首次执行的时间早于当前的时间
2.任务所需要的执行时间超过任务执行的周期
timer.scheduleAtFixedRate();和timer.schedule是不一样的
对第一种情况:
schedule会从当前时间开始执行
scheduleAtFixedRate会尽量赶上执行次数。
对第二种情况:
schedule会等执行完在执行
scheduleAtFixedRate会根据时间间隔执行

所以scheduleAtFixedRate要考虑到同步
* */
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息