问题描述
packagecom.test.pf;importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.util.Timer;importjava.util.TimerTask;publicclassuioextendsTimerTask{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubTimertimer=newTimer();//System.out.println(Thread.currentThread().getName());timer.schedule(newuio(),newDate(),600000);}@Overridepublicvoidrun(){//TODOAuto-generatedmethodstub//Datedate=newDate();SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");CTimec=newCTime("2014-07-1310:31:15");Stringa="";Stringa1=null;Datedate=newDate();try{a=c.printNextTime();}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}try{date=sdf.parse(a);}catch(ParseExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}for(inti=0;i<1000;i++){a1=""+i+"a";Timertimer=newTimer();timer.schedule(newpc(date),date);System.out.println(timer.hashCode());System.out.println(Thread.currentThread().getName());System.out.println(Thread.currentThread().getId());System.out.println(Thread.currentThread().isAlive());timer.schedule(newpc(newDate()),newDate());}}classpcextendsTimerTask{privateDatedate;publicpc(Datedate){this.date=date;}publicvoidrun(){System.out.println(Thread.currentThread().getName()+"开始了开始时间是:"+date.toString());//Thread.currentThread().try{Thread.sleep(3000);}catch(InterruptedExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}}我有很多个Timer怎么对其中的Timer执行Timer.cancel()的操作
解决方案
解决方案二:
不是每个Timer都是一个具体的对象吗那不就容易了!
解决方案三:
把这些timer的引用保存到一个集合变量里