Java中,定时任务Timer常用函数应用

一:机器人每隔2秒打印最近一次计划时间、执行内容

二:机器人会模拟向水桶里倒水,直到水满为止

机器人1:

public class DancingRobot extends TimerTask{
    @Override
    public void run() {
        SimpleDateFormat ftp=new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
        //获取当前的具体时间
        System.out.println("current time is:"+ftp.format(scheduledExecutionTime()));
        System.out.println("Happily Dancing!!!");
    }
}

机器人2:

public class WaterRobot extends TimerTask{
    //最大容量是5
    private Integer bucketCapacity=0;
    private Timer timer;
    public WaterRobot(Timer inputTimer) {
        timer=inputTimer;
    }
    @Override
    public void run() {
        if(bucketCapacity<5){
            System.out.println("Add 1L water into bucket");
            bucketCapacity++;
        }else {
            System.out.println("The number of canceled task in timer is:"+timer.purge());
            //取消当前任务
            cancel();
            System.out.println("The WaterRobot has been absorted!");
            System.out.println("The number of canceled task in timer is:"+timer.purge());
            System.out.println("Current bucket is:"+bucketCapacity+"L");
            //等待2秒,再终止timer里所有内容
            try {
                Thread.sleep(2000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            timer.cancel();      //取消timer所有任务,包括DancingRobot
        }
    }
}

测试:

public class ExectorTest {
    public static void main(String[] args) {
        Timer timer =new Timer();  //创建一个实例
        
        Calendar calendar=Calendar.getInstance();
        SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println(simpleDateFormat.format(calendar.getTime()));
        
        DancingRobot dancingRobot=new DancingRobot();
        WaterRobot waterRobot=new WaterRobot(timer);

        timer.schedule(dancingRobot, calendar.getTime(),2000);
        timer.schedule(waterRobot, calendar.getTime(),1000);
    }
}

 

posted @ 2017-08-20 18:01  小码农成长记  阅读(690)  评论(0)    收藏  举报