基于Timer和TimerTask的定时任务

来源:互联网 发布:永久域名注册网站 编辑:程序博客网 时间:2024/05/20 14:17
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要考虑到同步        * */    }}
原创粉丝点击