几分钟之后执行某一操作,使用定时器Timer可以实现
Timer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。
具体实现如下:
1 package com.aone.foottalk.common; 2 3 import java.util.TimerTask; 4 import com.aone.foottalk.action.back.utils.BaseTools; 5 6 import java.text.ParseException; 7 import java.util.Date; 8 import java.util.Timer; 9 public class Demo { 10 11 public static void main(String args[]){ 12 Timer timer = new Timer(); 13 TimerTask task = new TimerTask() { 14 @Override 15 public void run() { 16 try { 17 System.out.println("开始定时任务"); 18 } catch (Exception e) { 19 e.printStackTrace(); 20 } finally { 21 timer.cancel(); 22 System.out.println("结束"); 23 } 24 } 25 }; 26 //获取系统当前时间 27 String beginTime=BaseTools.formateMillsecDateToStr(BaseTools.systemtimeLong()); 28 System.out.println("开始时间"+beginTime); 29 //随机几分钟后 30 int num=(int)(1+Math.random()*(2-1+1)); 31 System.out.println(num+"几分钟后"); 32 try { 33 long time = BaseTools.string2Long(beginTime)+num*60*1000;//延时函数,单位毫秒,这里是延时了num分钟 34 System.out.println("执行时间"+BaseTools.formateMillsecDateToStr(time)); 35 Date date =BaseTools.StringToDate(BaseTools.formateMillsecDateToStr(time)); 36 //启动定时器 37 timer.schedule(task, date); 38 } catch (ParseException e) { 39 // TODO Auto-generated catch block 40 e.printStackTrace(); 41 } 42 } 43 }