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); } }

浙公网安备 33010602011771号